Interface: AsyncServiceProvider<S>
Defined in: src/types.ts:655
Read-only access to an AsyncDIContainer's services. Like ServiceProvider, but resolutions return promises of the (resolved) service types.
Example
function createHandler(services: AsyncServiceProvider<{ users: UserRepository }>) {
return async (id: string) => (await services.get('users')).find(id);
}
createHandler(app); // an AsyncDIContainer with `users` and moreExtended by
Type Parameters
S
S extends object = { }
Properties
keys
readonlykeys: readonlyServiceKey[]
Defined in: src/types.ts:686
Keys visible from this container, including its parents'.
ownKeys
readonlyownKeys: readonlyServiceKey[]
Defined in: src/types.ts:689
Keys registered in this container.
Methods
call()
call<
K>(key,args,thisArg?):Promise<Awaited<ReturnType<Extract<ServiceType<S,K>, (...args) =>any>>>>
Defined in: src/types.ts:677
Resolves a function service and calls it with args.
Type Parameters
K
K extends string | number | symbol
Parameters
key
K | TaggedKey<any, K>
args
Parameters<Extract<ServiceType<S, K>, (...args) => any>>
thisArg?
unknown
Returns
Promise<Awaited<ReturnType<Extract<ServiceType<S, K>, (...args) => any>>>>
createResolver()
createResolver<
K>(key): () =>Promise<ServiceType<S,K>>
Defined in: src/types.ts:672
Returns a function that resolves key when called.
Type Parameters
K
K extends string | number | symbol
Parameters
key
K | TaggedKey<any, K>
Returns
() => Promise<ServiceType<S, K>>
get()
get<
K,O>(key,options?):Promise<Oextendsobject?ServiceType<S,K> |undefined:ServiceType<S,K>>
Defined in: src/types.ts:659
Resolves a service. Rejects when the key is not registered, unless { optional: true } is passed.
Type Parameters
K
K extends string | number | symbol
O
O extends GetOptions = { }
Parameters
key
K | TaggedKey<any, K>
options?
O
Returns
Promise<O extends object ? ServiceType<S, K> | undefined : ServiceType<S, K>>
getParent()
getParent():
AsyncServiceProvider<{ }> |undefined
Defined in: src/types.ts:692
The parent container (read-only view), if any.
Returns
AsyncServiceProvider<{ }> | undefined
getRegistration()
getRegistration(
key):RegistrationInfo|undefined
Defined in: src/types.ts:695
Read-only metadata of the registration visible under key, or undefined.
Parameters
key
Returns
RegistrationInfo | undefined
has()
has(
key,options?):boolean
Defined in: src/types.ts:669
true when a service is registered under key (here or in a parent).
Parameters
key
options?
Returns
boolean