dino-core
Version:
A dependency injection framework for NodeJS applications
34 lines (33 loc) • 1.26 kB
TypeScript
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 {};