Interface: StartableModule()<Needs, Added, AsyncAdded>
Defined in: src/utils/lifecycle.ts:956
The module startable returns: apply it with extend() (or namespace()) to a DIContainer or an AsyncDIContainer. Needs are the services it requires; Added and AsyncAdded what it registers in each.
Example
const consumer: StartableModule<{ bus: Bus }, { consumer: Consumer }, { consumer: Consumer }> =
startable('consumer', Consumer, ['bus'], { start: (c) => c.start() });
app.extend(consumer);Type Parameters
Needs
Needs extends object
Added
Added extends object
AsyncAdded
AsyncAdded extends object
StartableModule<
R>(registry):RextendsAsyncServiceRegistry<any,any> ?AsyncServiceRegistry<any,AsyncAdded> :ServiceRegistry<any,Added>
Defined in: src/utils/lifecycle.ts:965
Registers the service and its hook in a DIContainer's or an AsyncDIContainer's registry (or a module's).
Type Parameters
R
R extends ServiceRegistry<Needs, { }> | AsyncServiceRegistry<Needs, { }>
Parameters
registry
R
Returns
R extends AsyncServiceRegistry<any, any> ? AsyncServiceRegistry<any, AsyncAdded> : ServiceRegistry<any, Added>