UNPKG

lakutata

Version:

An IoC-based universal application framework.

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