@adonisjs/fold
Version:
Simplest and straightforward implementation of IoC container in JavaScript
27 lines (26 loc) • 1.05 kB
TypeScript
import type { ContainerResolver } from './resolver.ts';
import type { InspectableConstructor } from './types.ts';
/**
* The default provider for resolving dependencies. It uses the resolver
* to resolve all the values.
*
* This function examines the class constructor or method for dependency
* injection metadata (added via the @inject decorator) and resolves
* each dependency using the container resolver.
*
* @param binding - The class constructor with container injection metadata
* @param property - The property key (constructor or method name)
* @param resolver - Container resolver to resolve dependencies
* @param runtimeValues - Optional runtime values to override injected dependencies
*
* @example
* ```ts
* const dependencies = await containerProvider(
* UsersController,
* '_constructor',
* resolver,
* []
* )
* ```
*/
export declare function containerProvider(binding: InspectableConstructor, property: string | symbol | number, resolver: ContainerResolver<any>, runtimeValues?: any[]): Promise<any[]>;