UNPKG

lakutata

Version:

An IoC-based universal application framework.

206 lines (128 loc) 5.28 kB
import { b as o, O as t, G as e, B as s } from "../../../../vendor/Package.3.mjs"; import { OverridableObjectTargetConfigNotFoundException as r } from "../../../exceptions/di/OverridableObjectTargetConfigNotFoundException.mjs"; import { As as i } from "../../helpers/As.mjs"; import { InvalidObjectTypeException as m } from "../../../exceptions/InvalidObjectTypeException.mjs"; import { ArrayToSet as p } from "../../helpers/ArrayToSet.mjs"; import { SetToArray as n } from "../../helpers/SetToArray.mjs"; import "../../../../vendor/Package.1.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.4.mjs"; import "../../../../vendor/Package.5.mjs"; import "../../../exceptions/di/LifetimeLockedException.mjs"; import "../abstracts/Exception.mjs"; import "./BasicInfo.mjs"; import "../../../../vendor/Package.6.mjs"; import "../../../../vendor/Package.7.mjs"; import "./ThrowWarning.mjs"; import "../../helpers/Templating.mjs"; import "./CamelCase.mjs"; import "../../helpers/NoCase.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.2.mjs"; import "./DataValidator.mjs"; import "node:util/types"; import "../../validation/VLD.mjs"; import "../../../../vendor/Package.11.mjs"; import "url"; import "../../../../vendor/Package.10.mjs"; import "../../../exceptions/dto/InvalidValueException.mjs"; import "../../../../vendor/Package.9.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 "../../../../vendor/Package.8.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 "../../helpers/DevNull.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 = p(r); this.$bootstrap = s.bootstrap ? s.bootstrap : []; s.objects?.anonymous?.forEach((o => this.$loadOptions.push(o))); if (s.objects && s.objects.named) { const t = s.objects.named; Object.keys(t).forEach((e => this.$loadOptions.push({ ...t[e], [o]: e }))); } this.processOverridableNamedObjectOptions(t.Component, s.components); this.processOverridableNamedObjectOptions(t.Provider, s.providers); this.processOverridableNamedObjectOptions(t.Module, s.modules); } validateObjectType(o, t) { if (e(t) !== o) throw new m("{0} configuration only accepts object declarations of {1} types", [ o, o.toLowerCase() ]); return t; } processOverridableNamedObjectOptions(t, e) { if (!e) return; Object.keys(e).forEach((m => { const p = e[m]; p[o] = m; if (p.class) { p.class = this.validateObjectType(t, p.class); return this.$loadOptions.push(i(p)) ? void 0 : void 0; } for (const t of this.$presetLoadOptionsSet) { if (typeof t === "string") continue; if (t instanceof s) continue; if (p[o] === t[o]) { this.$loadOptions.push(Object.assign({}, t, p)); return this.$presetLoadOptionsSet.delete(t) ? 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 };