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.
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.
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";
<service>-interface packagespackages/<service>-interface/project.jsonpackages/<service>-interface/README.mdtsconfig.base.json:"@cfxlabsinc/<service>-interface/*": [
"packages/<service>-interface/src/*/index.ts"
],
packages/<service>-interface/src to implement your new interface.