UNPKG

lakutata

Version:

An IoC-based universal application framework.

204 lines (128 loc) 5.47 kB
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */ "use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const e = require("../../../../vendor/Package.internal.4.cjs"); const r = require("../../../exceptions/di/OverridableObjectTargetConfigNotFoundException.cjs"); const t = require("../../helpers/As.cjs"); const s = require("../../../exceptions/InvalidObjectTypeException.cjs"); const i = require("../../helpers/ArrayToSet.cjs"); const o = require("../../helpers/SetToArray.cjs"); require("../../../../vendor/Package.internal.3.cjs"); require("../async-constructor/AsyncConstructor.cjs"); require("../async-constructor/Append.cjs"); require("../../helpers/IsPromiseLike.cjs"); require("../../helpers/IsPromise.cjs"); require("util/types"); require("../../../decorators/di/Lifetime.cjs"); require("./ObjectLifetime.cjs"); require("../../../constants/DIMetadataKey.cjs"); require("../../../../vendor/Package.internal.1.cjs"); require("../../../../vendor/Package.internal.2.cjs"); require("../../../exceptions/di/LifetimeLockedException.cjs"); require("../abstracts/Exception.cjs"); require("../../../../vendor/Package.internal.5.cjs"); require("../../../../vendor/Package.internal.6.cjs"); require("./ThrowWarning.cjs"); require("../../helpers/Templating.cjs"); require("./CamelCase.cjs"); require("../../helpers/NoCase.cjs"); require("../../helpers/DevNull.cjs"); require("../../../exceptions/MethodNotFoundException.cjs"); require("../../ioc/DependencyInjectionContainer.cjs"); require("util"); require("../../ioc/Errors.cjs"); require("../../../exceptions/di/DependencyInjectionException.cjs"); require("./ConstructorSymbol.cjs"); require("node:crypto"); require("../../../../vendor/Package.internal.7.cjs"); require("./DataValidator.cjs"); require("node:util/types"); require("../../validation/VLD.cjs"); require("url"); require("../../../exceptions/dto/InvalidValueException.cjs"); require("../../../../vendor/Package.internal.8.cjs"); require("../../helpers/IsHtml.cjs"); require("../../helpers/IsXML.cjs"); require("../../../constants/DTOMetadataKey.cjs"); require("../../helpers/ObjectConstructor.cjs"); require("../../helpers/ObjectParentConstructors.cjs"); require("../../helpers/ObjectParentConstructor.cjs"); require("../../helpers/ObjectPrototype.cjs"); require("../../ioc/InjectionMode.cjs"); require("../../ioc/Lifetime.cjs"); require("../../ioc/ListModules.cjs"); require("os"); require("path"); require("stream"); require("events"); require("fs"); require("../../ioc/Utils.cjs"); require("../../ioc/FunctionTokenizer.cjs"); require("../../ioc/LoadModules.cjs"); require("../../ioc/Resolvers.cjs"); require("../../ioc/ParamParser.cjs"); require("./ObjectWeakRefs.cjs"); require("./ConfigurableRecordsInjection.cjs"); require("./ObjectConfiguration.cjs"); require("./ObjectInjection.cjs"); require("./ObjectContainer.cjs"); require("../../../decorators/dto/Expect.cjs"); require("../../../decorators/dto/IndexSignature.cjs"); require("../../../decorators/dto/Accept.cjs"); require("./MethodValidation.cjs"); require("../../../exceptions/dto/InvalidMethodAcceptException.cjs"); require("../../../exceptions/dto/InvalidMethodReturnException.cjs"); require("../../helpers/IsEmptyObject.cjs"); class ModuleConfigLoader { constructor(r, t, s = []) { this.$presetLoadOptionsSet = new Set; this.$loadOptions = []; this.$bootstrap = []; this.$module = r; this.$presetLoadOptionsSet = i.ArrayToSet(s); this.$bootstrap = t.bootstrap ? t.bootstrap : []; t.objects?.anonymous?.forEach(e => this.$loadOptions.push(e)); if (t.objects && t.objects.named) { const r = t.objects.named; Object.keys(r).forEach(t => this.$loadOptions.push({ ...r[t], [e.OBJECT_ID]: t })); } this.processOverridableNamedObjectOptions(e.ObjectType.Component, t.components); this.processOverridableNamedObjectOptions(e.ObjectType.Provider, t.providers); } validateObjectType(r, t) { if (e.GetObjectType(t) !== r) throw new s.InvalidObjectTypeException("{0} configuration only accepts object declarations of {1} types", [ r, r.toLowerCase() ]); return t; } processOverridableNamedObjectOptions(s, i) { if (!i) return; Object.keys(i).forEach(o => { const c = i[o]; c[e.OBJECT_ID] = o; if (c.class) { c.class = this.validateObjectType(s, c.class); return this.$loadOptions.push(t.As(c)) ? void 0 : void 0; } for (const r of this.$presetLoadOptionsSet) { if (typeof r === "string") continue; if (r instanceof e.BaseObject) continue; if (c[e.OBJECT_ID] === r[e.OBJECT_ID]) { this.$loadOptions.push(Object.assign({}, r, c)); return this.$presetLoadOptionsSet.delete(r) ? void 0 : void 0; } } throw new r.OverridableObjectTargetConfigNotFoundException("No applicable configuration target found"); }); } get loadOptions() { return [ ...this.$loadOptions, ...o.SetToArray(this.$presetLoadOptionsSet) ]; } get bootstrap() { return this.$bootstrap; } } exports.ModuleConfigLoader = ModuleConfigLoader;