UNPKG

lakutata

Version:

An IoC-based universal application framework.

275 lines (174 loc) 6.9 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const e = require("../../../vendor/Package.1.cjs"); const r = require("./Component.cjs"); const t = require("../../decorators/di/Lifetime.cjs"); const s = require("../../../vendor/Package.3.cjs"); const o = require("../base/internal/ObjectContainer.cjs"); const i = require("../../options/ModuleOptions.cjs"); const c = require("../base/internal/ModuleConfigLoader.cjs"); const n = require("node:util/types"); const a = require("../../decorators/di/Configurable.cjs"); const u = require("../helpers/As.cjs"); const p = require("../helpers/NonceStr.cjs"); require("../base/EventEmitter.cjs"); require("../../../vendor/Package.5.cjs"); require("./Provider.cjs"); require("../base/async-constructor/AsyncConstructor.cjs"); require("../base/async-constructor/Append.cjs"); require("../helpers/IsPromiseLike.cjs"); require("../helpers/IsPromise.cjs"); require("util/types"); require("../../exceptions/MethodNotFoundException.cjs"); require("../base/abstracts/Exception.cjs"); require("../base/internal/BasicInfo.cjs"); require("../../../vendor/Package.6.cjs"); require("../../../vendor/Package.7.cjs"); require("../base/internal/ThrowWarning.cjs"); require("../helpers/Templating.cjs"); require("../base/internal/CamelCase.cjs"); require("../helpers/NoCase.cjs"); require("../ioc/DependencyInjectionContainer.cjs"); require("util"); require("../ioc/Errors.cjs"); require("../../exceptions/di/DependencyInjectionException.cjs"); require("../base/internal/ConstructorSymbol.cjs"); require("../../constants/DIMetadataKey.cjs"); require("../../../vendor/Package.4.cjs"); require("node:crypto"); require("../../../vendor/Package.2.cjs"); require("../base/internal/DataValidator.cjs"); 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("../base/internal/ObjectLifetime.cjs"); require("../../exceptions/di/LifetimeLockedException.cjs"); require("../base/internal/ObjectWeakRefs.cjs"); require("../base/internal/ConfigurableRecordsInjection.cjs"); require("../base/internal/ObjectConfiguration.cjs"); require("../base/internal/ObjectInjection.cjs"); require("../helpers/DevNull.cjs"); require("../../decorators/dto/Expect.cjs"); require("../../decorators/dto/IndexSignature.cjs"); require("../../decorators/dto/Accept.cjs"); require("../base/internal/MethodValidation.cjs"); require("../../exceptions/dto/InvalidMethodAcceptException.cjs"); require("../../exceptions/dto/InvalidMethodReturnException.cjs"); require("../helpers/IsEmptyObject.cjs"); require("../../options/ModuleLoadObjectsOptions.cjs"); require("../../options/LoadNamedObjectOptions.cjs"); require("../../options/LoadAnonymousObjectOptions.cjs"); require("../../options/OverridableNamedObjectOptions.cjs"); require("../../options/OverridableObjectOptions.cjs"); require("../../exceptions/di/OverridableObjectTargetConfigNotFoundException.cjs"); require("../../exceptions/InvalidObjectTypeException.cjs"); require("../helpers/ArrayToSet.cjs"); require("../helpers/SetToArray.cjs"); require("../helpers/RandomString.cjs"); require("../../../vendor/Package.15.cjs"); require("crypto"); const d = `_$.MODULE.INITIALIZED_${p.NonceStr()}`; const j = `_$.MODULE.INITIALIZE_ERROR_${p.NonceStr()}`; exports.Module = class Module extends r.Component { get container() { return o.GetObjectContainer(this); } #e; #r; constructor(e) { super(e); this.ConfigLoader = c.ModuleConfigLoader; this.options = {}; this.#e = []; this.#r = []; } async [s.__init](...e) { setImmediate((async () => { try { await super[s.__init](...e, (async () => { await this.container.load(this.#e); }), (async () => { Reflect.defineMetadata("#bootstrap", this.#r, this); for (const e of this.#r) { if (n.isAsyncFunction(e)) { await u.As(e)(this); } else { await this.getObject(u.As(e)); } } Reflect.deleteMetadata("#bootstrap", this); })); this.emit(d); } catch (e) { this.emit(j, e); } })); } async [s.__destroy](...e) { return await super[s.__destroy](...e); } mode() { if (!process.env.NODE_ENV) process.env.NODE_ENV = "development"; switch (process.env.NODE_ENV.toLowerCase()) { case "production": return "production"; case "development": return "development"; default: { process.env.NODE_ENV = "development"; return "development"; } } } async reload() { await new Promise(((e, r) => { this.once(d, (() => e())); super.reload().catch(r); })); } async getObject(e, r = {}) { return await super.getObject(e, r); } static { e.__decorate([ a.Configurable(i.ModuleOptions.optional().default({}).options({ stripUnknown: false }), (function(e) { const {bootstrap: r, loadOptions: t} = new this.ConfigLoader(this, this.options); r.forEach((e => this.#r.push(e))); const s = new this.ConfigLoader(this, e, t); s.bootstrap.forEach((e => this.#r.push(e))); this.#e = s.loadOptions; return e; })), e.__metadata("design:type", i.ModuleOptions) ], Module.prototype, "options", void 0); } }; exports.Module = e.__decorate([ t.Singleton(true), s.DefineObjectType(s.ObjectType.Module), e.__metadata("design:paramtypes", [ Object ]) ], exports.Module); exports.MODULE_INITIALIZED = d; exports.MODULE_INITIALIZE_ERROR = j;