ts-ioc-container
Version:
Typescript IoC container
17 lines (16 loc) • 582 B
JavaScript
import { ProviderDecorator } from './IProvider';
import { registerPipe } from './ProviderPipe';
export class DecoratorProvider extends ProviderDecorator {
provider;
decorateFn;
constructor(provider, decorateFn) {
super(provider);
this.provider = provider;
this.decorateFn = decorateFn;
}
resolve(scope, options) {
const dependency = this.provider.resolve(scope, options);
return this.decorateFn(dependency, scope);
}
}
export const decorate = (decorateFn) => registerPipe((p) => new DecoratorProvider(p, decorateFn));