@cfxlabsinc/b2b-services
    Preparing search index...

    Module @cfxlabsinc/interface-base

    interface-base

    The domain-agnostic base types, functions and other utilities used for defining API interfaces.

    The domain-specific assets should be defined in <service>-interface packages.

    Note

    This package is inlined into other <service>-interface packages. If you introduce a new module (directory under src/), ensure the exports in all <service>-interface packages are also updated.

    Interface packages

    For a service interface to be available to consumers, it is defined in a <service>-interface package.

    The following are expected from each package, if applicable:

    File Description
    src/models/index.ts TypeBox and TypeScript types used in the interface
    src/api/index.ts FastifyApi and OpenApiPaths for APIs implemented
    src/events/index.ts Typescript types for outbound events and relevant predicate guards

    Note that only the above files are exported from the package. So please ensure all relevant assets are exported in these specific files.

    For better organisation, split your assets in other .ts files and use index.ts to export them. E.g.

    export * from "./cardDepositRequest.js";
    export * from "./cashDepositRequest.js";
    export * from "./deposit.js";
    1. Copy and rename one of the existing <service>-interface packages
    2. Update the package name in the following files:
      • packages/<service>-interface/project.json
      • packages/<service>-interface/README.md
    3. Add the new package to tsconfig.base.json:
      "@cfxlabsinc/<service>-interface/*": [
      "packages/<service>-interface/src/*/index.ts"
      ],
    4. Update the code in packages/<service>-interface/src to implement your new interface.

    Modules

    events
    fastify
    index
    models
    openapi