UNPKG

lakutata

Version:

An IoC-based universal application framework.

258 lines (165 loc) 6.46 kB
/* Build Date: Mon Jan 05 2026 23:52:23 GMT+0800 (China Standard Time) */ import { _ as t, a as o } from "../../../vendor/Package.internal.3.mjs"; import { Component as e } from "./Component.mjs"; import { Singleton as s } from "../../decorators/di/Lifetime.mjs"; import { _ as r, a as i, D as n, O as m } from "../../../vendor/Package.internal.4.mjs"; import { GetObjectContainer as p } from "../base/internal/ObjectContainer.mjs"; import { ModuleOptions as a } from "../../options/ModuleOptions.mjs"; import { ModuleConfigLoader as c } from "../base/internal/ModuleConfigLoader.mjs"; import { isAsyncFunction as j } from "node:util/types"; import { Configurable as d } from "../../decorators/di/Configurable.mjs"; import { As as l } from "../helpers/As.mjs"; import { NonceStr as b } from "../helpers/NonceStr.mjs"; import "../base/EventEmitter.mjs"; import "./Provider.mjs"; import "../base/async-constructor/AsyncConstructor.mjs"; import "../base/async-constructor/Append.mjs"; import "../helpers/IsPromiseLike.mjs"; import "../helpers/IsPromise.mjs"; import "util/types"; import "../../exceptions/MethodNotFoundException.mjs"; import "../base/abstracts/Exception.mjs"; import "../../../vendor/Package.internal.5.mjs"; import "../../../vendor/Package.internal.2.mjs"; import "../../../vendor/Package.internal.6.mjs"; import "../base/internal/ThrowWarning.mjs"; import "../helpers/Templating.mjs"; import "../base/internal/CamelCase.mjs"; import "../helpers/NoCase.mjs"; import "../helpers/DevNull.mjs"; import "../ioc/DependencyInjectionContainer.mjs"; import "util"; import "../ioc/Errors.mjs"; import "../../exceptions/di/DependencyInjectionException.mjs"; import "../base/internal/ConstructorSymbol.mjs"; import "../../constants/DIMetadataKey.mjs"; import "../../../vendor/Package.internal.1.mjs"; import "node:crypto"; import "../../../vendor/Package.internal.7.mjs"; import "../base/internal/DataValidator.mjs"; 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 "../base/internal/ObjectLifetime.mjs"; import "../../exceptions/di/LifetimeLockedException.mjs"; import "../base/internal/ObjectWeakRefs.mjs"; import "../base/internal/ConfigurableRecordsInjection.mjs"; import "../base/internal/ObjectConfiguration.mjs"; import "../base/internal/ObjectInjection.mjs"; import "../../decorators/dto/Expect.mjs"; import "../../decorators/dto/IndexSignature.mjs"; import "../../decorators/dto/Accept.mjs"; import "../base/internal/MethodValidation.mjs"; import "../../exceptions/dto/InvalidMethodAcceptException.mjs"; import "../../exceptions/dto/InvalidMethodReturnException.mjs"; import "../helpers/IsEmptyObject.mjs"; import "../../options/ModuleLoadObjectsOptions.mjs"; import "../../options/LoadNamedObjectOptions.mjs"; import "../../options/LoadAnonymousObjectOptions.mjs"; import "../../options/OverridableNamedObjectOptions.mjs"; import "../../options/OverridableObjectOptions.mjs"; import "../../exceptions/di/OverridableObjectTargetConfigNotFoundException.mjs"; import "../../exceptions/InvalidObjectTypeException.mjs"; import "../helpers/ArrayToSet.mjs"; import "../helpers/SetToArray.mjs"; import "../helpers/RandomString.mjs"; import "crypto"; const h = `_$.MODULE.INITIALIZED_${b()}`; const u = `_$.MODULE.INITIALIZE_ERROR_${b()}`; let O = class Module extends e { get container() { return p(this); } #t; #o; constructor(t) { super(t); this.ConfigLoader = c; this.options = {}; this.#t = []; this.#o = []; } async [r](...t) { setImmediate(async () => { try { await super[r](...t, async () => { await this.container.load(this.#t); }, async () => { Reflect.defineMetadata("#bootstrap", this.#o, this); for (const t of this.#o) { if (j(t)) { await l(t)(this); } else { await this.getObject(l(t)); } } Reflect.deleteMetadata("#bootstrap", this); }); this.emit(h); } catch (t) { this.emit(u, t); } }); } async [i](...t) { return await super[i](...t); } 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((t, o) => { this.once(h, () => t()); super.reload().catch(o); }); } async getObject(t, o = {}) { return await super.getObject(t, o); } static { t([ d(a.optional().default({}).options({ stripUnknown: false }), function(t) { const {bootstrap: o, loadOptions: e} = new this.ConfigLoader(this, this.options); o.forEach(t => this.#o.push(t)); const s = new this.ConfigLoader(this, t, e); s.bootstrap.forEach(t => this.#o.push(t)); this.#t = s.loadOptions; return t; }), o("design:type", a) ], Module.prototype, "options", void 0); } }; O = t([ s(true), n(m.Module), o("design:paramtypes", [ Object ]) ], O); export { h as MODULE_INITIALIZED, u as MODULE_INITIALIZE_ERROR, O as Module };