18 lines
730 B
JavaScript
18 lines
730 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.DependencyContainer = void 0;
|
|
require("reflect-metadata");
|
|
class DependencyContainer {
|
|
static resolve(target) {
|
|
if (!this.instances.has(target)) {
|
|
const tokens = Reflect.getMetadata('design:paramtypes', target) || [];
|
|
const injections = tokens.map((token) => DependencyContainer.resolve(token));
|
|
const instance = new target(...injections);
|
|
this.instances.set(target, instance);
|
|
}
|
|
return this.instances.get(target);
|
|
}
|
|
}
|
|
exports.DependencyContainer = DependencyContainer;
|
|
DependencyContainer.instances = new Map();
|
|
//# sourceMappingURL=dependency-container.lib.js.map
|