Documents injecute 1.x · Migrating from 0.x
Skip to content

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 ​

ts
function createHandler(services: ServiceProvider<{ users: UserRepository }>) {
  return (id: string) => services.get('users').find(id);
}
createHandler(app); // app has `users` and more

Extended by ​

Type Parameters ​

S ​

S extends object = { }

Properties ​

keys ​

readonly keys: readonly ServiceKey[]

Defined in: src/types.ts:394

Keys visible from this container, including its parents'.


ownKeys ​

readonly ownKeys: readonly ServiceKey[]

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?): O extends object ? 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 ​

ServiceKey

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 ​

ServiceKey

options? ​

HasOptions

Returns ​

boolean

Released under the MIT License.