UNPKG

lakutata

Version:

An IoC-based universal application framework.

212 lines (132 loc) 5.59 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const e = require("../../../../vendor/Package.3.cjs"); const r = require("../../../exceptions/di/OverridableObjectTargetConfigNotFoundException.cjs"); const t = require("../../helpers/As.cjs"); const s = require("../../../exceptions/InvalidObjectTypeException.cjs"); const o = require("../../helpers/ArrayToSet.cjs"); const i = require("../../helpers/SetToArray.cjs"); require("../../../../vendor/Package.1.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.4.cjs"); require("../../../../vendor/Package.5.cjs"); require("../../../exceptions/di/LifetimeLockedException.cjs"); require("../abstracts/Exception.cjs"); require("./BasicInfo.cjs"); require("../../../../vendor/Package.6.cjs"); require("../../../../vendor/Package.7.cjs"); require("./ThrowWarning.cjs"); require("../../helpers/Templating.cjs"); require("./CamelCase.cjs"); require("../../helpers/NoCase.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.2.cjs"); require("./DataValidator.cjs"); require("node:util/types"); require("../../validation/VLD.cjs"); require("../../../../vendor/Package.11.cjs"); require("url"); require("../../../../vendor/Package.10.cjs"); require("../../../exceptions/dto/InvalidValueException.cjs"); require("../../../../vendor/Package.9.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("../../../../vendor/Package.8.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("../../helpers/DevNull.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 = o.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); this.processOverridableNamedObjectOptions(e.ObjectType.Module, t.modules); } 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, o) { if (!o) return; Object.keys(o).forEach((i => { const c = o[i]; c[e.OBJECT_ID] = i; 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, ...i.SetToArray(this.$presetLoadOptionsSet) ]; } get bootstrap() { return this.$bootstrap; } } exports.ModuleConfigLoader = ModuleConfigLoader;