@wixc3/engine-core
    TypeScript icon, indicating that this package has built-in type declarations

    20.1.0 • Public • Published

    @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/worker/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 */
      },
    });

    Keywords

    none

    Install

    npm i @wixc3/engine-core

    DownloadsWeekly Downloads

    805

    Version

    20.1.0

    License

    MIT

    Unpacked Size

    892 kB

    Total Files

    243

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar