Interface: ServiceProvider<S>
Defined in: src/types.ts:367
Read-only access to a container's services: resolve and inspect, but not register or configure.
Give it to code that only consumes services (handlers, middleware context, tooling). A provider of more services is assignable to a provider of fewer, so declare what you need:
Example
function createHandler(services: ServiceProvider<{ users: UserRepository }>) {
return (id: string) => services.get('users').find(id);
}
createHandler(app); // app has `users` and moreExtended by
Type Parameters
S
S extends object = { }
Properties
keys
readonlykeys: readonlyServiceKey[]
Defined in: src/types.ts:394
Keys visible from this container, including its parents'.
ownKeys
readonlyownKeys: readonlyServiceKey[]
Defined in: src/types.ts:397
Keys registered in this container.
Methods
call()
call<
K>(key,args,thisArg?):ReturnType<Extract<ServiceType<S,K>, (...args) =>any>>
Defined in: src/types.ts:387
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
ReturnType<Extract<ServiceType<S, K>, (...args) => any>>
createResolver()
createResolver<
K>(key): () =>ServiceType<S,K>
Defined in: src/types.ts:382
Returns a function that resolves key when called.
Type Parameters
K
K extends string | number | symbol
Parameters
key
K | TaggedKey<any, K>
Returns
() => ServiceType<S, K>
get()
get<
K,O>(key,options?):Oextendsobject?ServiceType<S,K> |undefined:ServiceType<S,K>
Defined in: src/types.ts:371
Resolves a service. Throws 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
O extends object ? ServiceType<S, K> | undefined : ServiceType<S, K>
getParent()
getParent():
ServiceProvider<{ }> |undefined
Defined in: src/types.ts:400
The parent container (read-only view), if any.
Returns
ServiceProvider<{ }> | undefined
getRegistration()
getRegistration(
key):RegistrationInfo|undefined
Defined in: src/types.ts:403
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:379
true when a service is registered under key (here or in a parent).
Parameters
key
options?
Returns
boolean