lakutata
Version:
An IoC-based universal application framework.
258 lines (165 loc) • 6.46 kB
JavaScript
/* 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 };