@wixc3/engine-core
v24.0.0@wixc3/engine-core
Run-time abstractions for creating multi-environment web applications while practicing feature-oriented software development.
Approach
- An application is a set of one or more features.
- A feature contains all the integration code required to get a subset of product functionality implemented.
- Features may depend on other features, consume their exposed services and register into their slots.
- A service is a set of functions exposed as an API of a feature.
- A slot is a registry of any type, which allows pluggability via registration.
- Environments (browser/webworker/iframe) are defined by features, and have semantic names (main/processing/preview).
- Each slot and service is available in a specific environment.
- Services can be marked as accessible cross-environments, which exposes them as async APIs in those environment.
Feature
A feature is combined of several files:
<feature-name>.feature.ts
- feature definition file.<feature-name>.<some-env>.env.ts
- some-env specific setup code.<feature-name>.<another-env>.env.ts
- another-env specific setup code.
Feature definition file
Feature definition is created in a <feature-name>.feature.ts
file, and is exposed as the default
export.
For example:
/* my-feature.feature.ts */
import { Feature } from '@wixc3/engine-core';
/* defining a new feature */
export default new Feature({
id: 'myFeature' /* unique id for the feature */,
dependencies: [
/* other features the feature depends on */
],
api: {
/* slots, services, and configurations of the feature */
},
});
npm i @wixc3/[email protected]
Metadata
- MIT
- Whatever
- Unknown
- released 2/28/2022
Downloads
Maintainers
itaywix, noamhoffmanwix, itailv, thealmightycrumb, carioc3, devex-infra, olehr, viktorz_at_wix, 0xreza, tomrav, avi.vahl, ofir_yagen, alexswix, littletal, omerk, tomermes, iamromanyarinovsky, talga, cijoe, wix-ci, wixnpm, baraki, blue16, interal, maxlk, zsgalusz, alisey, talh, jomarton, alexanderg-wix, danieleww, alexeye, xyrue, idoros, nadavwix, rashellek, wtfil, maksym_wix, chuvpylov.m, denysdovhan, vkobeliatskyi, pistolpete_, deduck, nettaru, igalh, netanelgilad, hadarvid, liorer, anatfenn, erezshasha, zemlanin, leeronwix, arnonkehat, eladdo92, romanyarinovskytest, ariki, itpurchases, danalevy, anna-c, kenanu, serhiiz, eifr0980, oleksandraab, idango10, enzewon, wixdanielr, mikanadel, tmatyashovsky, yardenporat, tetiana0611, vladkar, yurii-v, elig-wix, nadav.a, vladyslavgoloshchapov, tzachb,