UNPKG

@solidgrounds/core

Version:
33 lines 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPendingServiceFactoryReference = void 0; /** * Context for creating new service factories. */ const Value_1 = require("./Value"); const Util_1 = require("./Util"); const Error_1 = require("./Error"); const createPendingServiceFactoryReference = (name) => { let pending = null; const assertReference = () => { if (pending === null) { throw new Error_1.ContainerError(`Cannot invoke pending service reference "${name}" `); } return pending; }; const sfr = Util_1.createNamedFunction(name, () => assertReference()()); sfr.serviceName = name; sfr.resolve = (resolved) => { if (pending !== null) { throw new Error_1.ContainerError('PendingServiceFactoryReference already resolved'); } pending = resolved; sfr.info.getDependencies().forEach((d) => resolved.info.addDependency(d)); sfr.info.getOverrides().forEach((d) => resolved.info.addOverride(d)); sfr.info = resolved.info; }; sfr.info = new Value_1.ServiceFactoryInfo(sfr); return sfr; }; exports.createPendingServiceFactoryReference = createPendingServiceFactoryReference; //# sourceMappingURL=createPendingServiceFactoryReference.js.map