UNPKG

ts-ioc-container

Version:
42 lines (41 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProviderDecorator = exports.scopeAccess = exports.argsFn = exports.args = void 0; const ProviderPipe_1 = require("./ProviderPipe"); const args = (...extraArgs) => (0, ProviderPipe_1.registerPipe)((p) => p.setArgs(() => extraArgs)); exports.args = args; const argsFn = (fn) => (0, ProviderPipe_1.registerPipe)((p) => p.setArgs(fn)); exports.argsFn = argsFn; const scopeAccess = (predicate) => (0, ProviderPipe_1.registerPipe)((p) => p.setAccessPredicate(predicate)); exports.scopeAccess = scopeAccess; class ProviderDecorator { decorated; constructor(decorated) { this.decorated = decorated; } setAccessPredicate(predicate) { this.decorated.setAccessPredicate(predicate); return this; } hasAccess(options) { return this.decorated.hasAccess(options); } resolve(container, options) { return this.decorated.resolve(container, options); } pipe(...mappers) { const fns = mappers.map((m) => { if ((0, ProviderPipe_1.isProviderPipe)(m)) { return m.mapProvider.bind(m); } return m; }); this.decorated = this.decorated.pipe(...fns); return this; } setArgs(argsFn) { this.decorated.setArgs(argsFn); return this; } } exports.ProviderDecorator = ProviderDecorator;