UNPKG

dino-core

Version:

A dependency injection framework for NodeJS applications

34 lines (33 loc) 1.26 kB
import { type BuildResolver, type Constructor, type DisposableResolver, type FunctionReturning, asClass, asFunction, asValue, type Resolver as AWResolver } from 'awilix'; export type ResolvableInjectable<T> = Constructor<T> & T & FunctionReturning<T>; export type ResolvedInjectable<T> = AWResolver<T> | (BuildResolver<T> & DisposableResolver<T>); type Primitive = typeof asClass | typeof asValue | typeof asFunction; export declare class Resolver { static CLASS: Resolver; static VALUE: Resolver; static FUNCTION: Resolver; private readonly id; private readonly primitive; private constructor(); getId(): string; isClassOrFunction(): boolean; asPrimitive(): Primitive; /** * Wrap the target component to an awilix resolver. * @param {object} target the target component to wrap * @returns {any} the awilix resolver */ wrap(target: ResolvableInjectable<any>): ResolvedInjectable<any>; /** * Lookup a resolver from it name * @param {String} name the name of the resolver to lookup * * @returns {Scope} the {@link Resolver} retrieved from it name * * @default Scope.SINGLETON * * @public */ static fromName(name: string): Resolver; } export {};