ts-ioc-container
Version:
Typescript IoC container
22 lines (21 loc) • 806 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.decorate = exports.DecoratorProvider = void 0;
const IProvider_1 = require("./IProvider");
const ProviderPipe_1 = require("./ProviderPipe");
class DecoratorProvider extends IProvider_1.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);
}
}
exports.DecoratorProvider = DecoratorProvider;
const decorate = (decorateFn) => (0, ProviderPipe_1.registerPipe)((p) => new DecoratorProvider(p, decorateFn));
exports.decorate = decorate;