fragment-ts 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/init.command.js +1 -1
- package/dist/core/container/di-container.d.ts +1 -0
- package/dist/core/container/di-container.d.ts.map +1 -1
- package/dist/core/container/di-container.js +43 -16
- package/dist/core/container/di-container.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/init.command.ts +1 -1
- package/src/core/container/di-container.ts +180 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di-container.d.ts","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAuB;IAEzC,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI;IAU/D,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"di-container.d.ts","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAuB;IAEzC,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI;IAU/D,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAsDzB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,gBAAgB;IAgDxB,OAAO,CAAC,2BAA2B;IAkDnC,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,iBAAiB;IAiBzB,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIxB,eAAe,IAAI,GAAG,EAAE;IAIxB,KAAK,IAAI,IAAI;IAQb,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -79,7 +79,8 @@ class DIContainer {
|
|
|
79
79
|
this.injectProperties(instance);
|
|
80
80
|
// Call @PostConstruct
|
|
81
81
|
const postConstructMethod = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.POST_CONSTRUCT, target);
|
|
82
|
-
if (postConstructMethod &&
|
|
82
|
+
if (postConstructMethod &&
|
|
83
|
+
typeof instance[postConstructMethod] === "function") {
|
|
83
84
|
console.log(` 🎯 Calling @PostConstruct: ${target.name}.${postConstructMethod}()`);
|
|
84
85
|
instance[postConstructMethod]();
|
|
85
86
|
}
|
|
@@ -88,25 +89,51 @@ class DIContainer {
|
|
|
88
89
|
injectProperties(instance) {
|
|
89
90
|
const constructor = instance.constructor;
|
|
90
91
|
console.log(` 🔍 Checking properties for injection on ${constructor.name}`);
|
|
91
|
-
//
|
|
92
|
+
// Walk through the entire prototype chain
|
|
92
93
|
let currentProto = constructor.prototype;
|
|
93
|
-
// Walk up the prototype chain
|
|
94
94
|
while (currentProto && currentProto !== Object.prototype) {
|
|
95
|
-
// Get
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (prop === "constructor")
|
|
95
|
+
// Get ALL property descriptors (including getters/setters)
|
|
96
|
+
const descriptors = Object.getOwnPropertyDescriptors(currentProto);
|
|
97
|
+
for (const [propName, descriptor] of Object.entries(descriptors)) {
|
|
98
|
+
if (propName === "constructor")
|
|
100
99
|
continue;
|
|
101
|
-
//
|
|
102
|
-
this.tryInjectAutowired(instance, currentProto,
|
|
103
|
-
this.tryInjectByToken(instance, currentProto,
|
|
104
|
-
this.tryInjectValue(instance, currentProto,
|
|
105
|
-
this.tryInjectRepository(instance, currentProto,
|
|
106
|
-
this.tryInjectLazy(instance, currentProto,
|
|
100
|
+
// Try each injection type
|
|
101
|
+
this.tryInjectAutowired(instance, currentProto, propName, constructor.name);
|
|
102
|
+
this.tryInjectByToken(instance, currentProto, propName, constructor.name);
|
|
103
|
+
this.tryInjectValue(instance, currentProto, propName, constructor.name);
|
|
104
|
+
this.tryInjectRepository(instance, currentProto, propName, constructor.name);
|
|
105
|
+
this.tryInjectLazy(instance, currentProto, propName, constructor.name);
|
|
107
106
|
}
|
|
108
107
|
currentProto = Object.getPrototypeOf(currentProto);
|
|
109
108
|
}
|
|
109
|
+
// Also check for properties that might be defined directly on the instance
|
|
110
|
+
// but decorated with @Autowired on the class definition
|
|
111
|
+
this.checkForDecoratedProperties(instance, constructor);
|
|
112
|
+
}
|
|
113
|
+
checkForDecoratedProperties(instance, constructor) {
|
|
114
|
+
// Check all metadata keys that might be attached to properties
|
|
115
|
+
const propertyKeys = [
|
|
116
|
+
...(Reflect.getMetadataKeys(constructor.prototype) || []),
|
|
117
|
+
...(Reflect.getMetadataKeys(instance) || []),
|
|
118
|
+
];
|
|
119
|
+
// Filter for property-related metadata
|
|
120
|
+
for (const key of propertyKeys) {
|
|
121
|
+
if (key.includes("fragment:")) {
|
|
122
|
+
// This is a Fragment metadata key, need to check if it's attached to a property
|
|
123
|
+
const metadataValue = Reflect.getMetadata(key, constructor.prototype);
|
|
124
|
+
if (metadataValue && typeof metadataValue === "object") {
|
|
125
|
+
// Could be a property metadata
|
|
126
|
+
for (const prop of Object.keys(metadataValue)) {
|
|
127
|
+
if (prop !== "constructor") {
|
|
128
|
+
this.tryInjectAutowired(instance, constructor.prototype, prop, constructor.name);
|
|
129
|
+
this.tryInjectByToken(instance, constructor.prototype, prop, constructor.name);
|
|
130
|
+
this.tryInjectValue(instance, constructor.prototype, prop, constructor.name);
|
|
131
|
+
this.tryInjectRepository(instance, constructor.prototype, prop, constructor.name);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
110
137
|
}
|
|
111
138
|
tryInjectAutowired(instance, proto, prop, className) {
|
|
112
139
|
const type = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.AUTOWIRED, proto, prop);
|
|
@@ -130,7 +157,7 @@ class DIContainer {
|
|
|
130
157
|
const token = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.INJECT, proto, prop);
|
|
131
158
|
if (!token)
|
|
132
159
|
return;
|
|
133
|
-
const tokenName = typeof token ===
|
|
160
|
+
const tokenName = typeof token === "string" ? token : token.name;
|
|
134
161
|
console.log(` 💉 @Inject found: ${className}.${prop} -> ${tokenName}`);
|
|
135
162
|
const isOptional = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.OPTIONAL, proto, prop);
|
|
136
163
|
try {
|
|
@@ -171,7 +198,7 @@ class DIContainer {
|
|
|
171
198
|
if (!isLazy)
|
|
172
199
|
return;
|
|
173
200
|
const type = Reflect.getMetadata("design:type", proto, prop);
|
|
174
|
-
console.log(` ⏳ @Lazy found: ${className}.${prop} (${type?.name ||
|
|
201
|
+
console.log(` ⏳ @Lazy found: ${className}.${prop} (${type?.name || "unknown"})`);
|
|
175
202
|
let cached = null;
|
|
176
203
|
let resolved = false;
|
|
177
204
|
Object.defineProperty(instance, prop, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di-container.js","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"di-container.js","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAG1D,MAAa,WAAW;IAAxB;QAEU,eAAU,GAAkB,IAAI,GAAG,EAAE,CAAC;QACtC,eAAU,GAAkB,IAAI,GAAG,EAAE,CAAC;QACtC,cAAS,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC3C,iBAAY,GAAa,IAAI,GAAG,EAAE,CAAC;QACnC,eAAU,GAAa,IAAI,GAAG,EAAE,CAAC;IAwa3C,CAAC;IAtaC,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,QAAQ,CAAC,KAAU,EAAE,QAAc,EAAE,OAAmB;QACtD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,CAAI,KAAU;QACnB,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,CAAC,IAAI,kCAAkC;gBAC5D,mFAAmF,CACtF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,KAAK,GACT,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC;YAEjE,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAE7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,KAAK,GACT,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC;gBAEjE,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACvC,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAEO,cAAc,CAAC,MAAW;QAChC,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAE1E,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE;YACzD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CACV,4BAA4B,KAAK,OAAO,MAAM,CAAC,IAAI,cAAc,CAClE,CAAC;gBACF,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;QAEvC,8BAA8B;QAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,sBAAsB;QACtB,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAC7C,6BAAa,CAAC,cAAc,EAC5B,MAAM,CACP,CAAC;QACF,IACE,mBAAmB;YACnB,OAAO,QAAQ,CAAC,mBAAmB,CAAC,KAAK,UAAU,EACnD,CAAC;YACD,OAAO,CAAC,GAAG,CACT,iCAAiC,MAAM,CAAC,IAAI,IAAI,mBAAmB,IAAI,CACxE,CAAC;YACF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,QAAa;QACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAEzC,OAAO,CAAC,GAAG,CACT,8CAA8C,WAAW,CAAC,IAAI,EAAE,CACjE,CAAC;QAEF,0CAA0C;QAC1C,IAAI,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC;QAEzC,OAAO,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACzD,2DAA2D;YAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;YAEnE,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjE,IAAI,QAAQ,KAAK,aAAa;oBAAE,SAAS;gBAEzC,0BAA0B;gBAC1B,IAAI,CAAC,kBAAkB,CACrB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,WAAW,CAAC,IAAI,CACjB,CAAC;gBACF,IAAI,CAAC,gBAAgB,CACnB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,WAAW,CAAC,IAAI,CACjB,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,CAAC,mBAAmB,CACtB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,WAAW,CAAC,IAAI,CACjB,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;YAED,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;QAED,2EAA2E;QAC3E,wDAAwD;QACxD,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAEO,2BAA2B,CACjC,QAAa,EACb,WAAqB;QAErB,+DAA+D;QAC/D,MAAM,YAAY,GAAG;YACnB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzD,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC;QAEF,uCAAuC;QACvC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,gFAAgF;gBAChF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;gBACtE,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACvD,+BAA+B;oBAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC9C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;4BAC3B,IAAI,CAAC,kBAAkB,CACrB,QAAQ,EACR,WAAW,CAAC,SAAS,EACrB,IAAI,EACJ,WAAW,CAAC,IAAI,CACjB,CAAC;4BACF,IAAI,CAAC,gBAAgB,CACnB,QAAQ,EACR,WAAW,CAAC,SAAS,EACrB,IAAI,EACJ,WAAW,CAAC,IAAI,CACjB,CAAC;4BACF,IAAI,CAAC,cAAc,CACjB,QAAQ,EACR,WAAW,CAAC,SAAS,EACrB,IAAI,EACJ,WAAW,CAAC,IAAI,CACjB,CAAC;4BACF,IAAI,CAAC,mBAAmB,CACtB,QAAQ,EACR,WAAW,CAAC,SAAS,EACrB,IAAI,EACJ,WAAW,CAAC,IAAI,CACjB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,QAAa,EACb,KAAU,EACV,IAAY,EACZ,SAAiB;QAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,SAAS,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,IAAI,SAAS,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CACtE,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CACV,8BAA8B,IAAI,CAAC,IAAI,sBAAsB,SAAS,IAAI,IAAI,EAAE,CACjF,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,QAAa,EACb,KAAU,EACV,IAAY,EACZ,SAAiB;QAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAErE,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,IAAI,IAAI,OAAO,SAAS,EAAE,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,SAAS,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,oBAAoB,SAAS,SAAS,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CACpE,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CACV,8BAA8B,SAAS,sBAAsB,SAAS,IAAI,IAAI,EAAE,CACjF,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,cAAc,CACpB,QAAa,EACb,KAAU,EACV,IAAY,EACZ,SAAiB;QAEjB,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzE,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO;QAErC,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAEO,mBAAmB,CACzB,QAAa,EACb,KAAU,EACV,IAAY,EACZ,SAAiB;QAEjB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAChC,6BAAa,CAAC,iBAAiB,EAC/B,KAAK,EACL,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,OAAO,CAAC,GAAG,CACT,kCAAkC,SAAS,IAAI,IAAI,kBAAkB,MAAM,CAAC,IAAI,GAAG,CACpF,CAAC;QAEF,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CACT,4BAA4B,MAAM,CAAC,IAAI,UAAU,SAAS,IAAI,IAAI,EAAE,CACrE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,mCAAmC,MAAM,CAAC,IAAI,SAAS,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,aAAa,CACnB,QAAa,EACb,KAAU,EACV,IAAY,EACZ,SAAiB;QAEjB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEpE,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CACT,qBAAqB,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,SAAS,GAAG,CACtE,CAAC;QAEF,IAAI,MAAM,GAAQ,IAAI,CAAC;QACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE;YACpC,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CACT,sBAAsB,IAAI,CAAC,IAAI,QAAQ,SAAS,IAAI,IAAI,EAAE,CAC3D,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,UAAkB;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAC5B,mDAAmD,CACpD,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,OAAO,YAAY,CAAC;gBACtB,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,gCAAgC,GAAG,eAAe,CAAC,CAAC;gBACjE,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAChD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAElD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,iBAAiB,CAAC,MAAW;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;YAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,oCAAoC,MAAM,CAAC,IAAI,KAAM,KAAe,EAAE,OAAO,EAAE,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF;AA9aD,kCA8aC"}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ export class DIContainer {
|
|
|
18
18
|
|
|
19
19
|
register(token: any, instance?: any, factory?: () => any): void {
|
|
20
20
|
this.registered.add(token);
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
if (instance) {
|
|
23
23
|
this.singletons.set(token, instance);
|
|
24
24
|
} else if (factory) {
|
|
@@ -30,13 +30,13 @@ export class DIContainer {
|
|
|
30
30
|
if (typeof token === "function" && !this.registered.has(token)) {
|
|
31
31
|
throw new Error(
|
|
32
32
|
`Cannot resolve ${token.name}: Not registered as injectable. ` +
|
|
33
|
-
|
|
33
|
+
`Did you forget to add @Injectable(), @Service(), @Controller(), or @Repository()?`,
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
if (this.constructing.has(token)) {
|
|
38
38
|
throw new Error(
|
|
39
|
-
`Circular dependency detected for ${token.name || token}
|
|
39
|
+
`Circular dependency detected for ${token.name || token}`,
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -47,7 +47,8 @@ export class DIContainer {
|
|
|
47
47
|
if (this.factories.has(token)) {
|
|
48
48
|
const factory = this.factories.get(token)!;
|
|
49
49
|
const instance = factory();
|
|
50
|
-
const scope =
|
|
50
|
+
const scope =
|
|
51
|
+
Reflect.getMetadata(METADATA_KEYS.SCOPE, token) || "singleton";
|
|
51
52
|
|
|
52
53
|
if (scope === "singleton") {
|
|
53
54
|
this.singletons.set(token, instance);
|
|
@@ -61,7 +62,8 @@ export class DIContainer {
|
|
|
61
62
|
|
|
62
63
|
try {
|
|
63
64
|
const instance = this.createInstance(token);
|
|
64
|
-
const scope =
|
|
65
|
+
const scope =
|
|
66
|
+
Reflect.getMetadata(METADATA_KEYS.SCOPE, token) || "singleton";
|
|
65
67
|
|
|
66
68
|
if (scope === "singleton") {
|
|
67
69
|
this.singletons.set(token, instance);
|
|
@@ -80,12 +82,14 @@ export class DIContainer {
|
|
|
80
82
|
|
|
81
83
|
private createInstance(target: any): any {
|
|
82
84
|
console.log(` 🔨 Creating instance of ${target.name}`);
|
|
83
|
-
|
|
85
|
+
|
|
84
86
|
const paramTypes = Reflect.getMetadata("design:paramtypes", target) || [];
|
|
85
87
|
|
|
86
88
|
const params = paramTypes.map((type: any, index: number) => {
|
|
87
89
|
if (!type || type === Object) {
|
|
88
|
-
console.warn(
|
|
90
|
+
console.warn(
|
|
91
|
+
` ⚠️ Constructor param ${index} of ${target.name} has no type`,
|
|
92
|
+
);
|
|
89
93
|
return undefined;
|
|
90
94
|
}
|
|
91
95
|
console.log(` 📦 Resolving constructor dependency: ${type.name}`);
|
|
@@ -100,10 +104,15 @@ export class DIContainer {
|
|
|
100
104
|
// Call @PostConstruct
|
|
101
105
|
const postConstructMethod = Reflect.getMetadata(
|
|
102
106
|
METADATA_KEYS.POST_CONSTRUCT,
|
|
103
|
-
target
|
|
107
|
+
target,
|
|
104
108
|
);
|
|
105
|
-
if (
|
|
106
|
-
|
|
109
|
+
if (
|
|
110
|
+
postConstructMethod &&
|
|
111
|
+
typeof instance[postConstructMethod] === "function"
|
|
112
|
+
) {
|
|
113
|
+
console.log(
|
|
114
|
+
` 🎯 Calling @PostConstruct: ${target.name}.${postConstructMethod}()`,
|
|
115
|
+
);
|
|
107
116
|
instance[postConstructMethod]();
|
|
108
117
|
}
|
|
109
118
|
|
|
@@ -112,41 +121,114 @@ export class DIContainer {
|
|
|
112
121
|
|
|
113
122
|
private injectProperties(instance: any): void {
|
|
114
123
|
const constructor = instance.constructor;
|
|
115
|
-
|
|
116
|
-
console.log(
|
|
117
|
-
|
|
118
|
-
|
|
124
|
+
|
|
125
|
+
console.log(
|
|
126
|
+
` 🔍 Checking properties for injection on ${constructor.name}`,
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
// Walk through the entire prototype chain
|
|
119
130
|
let currentProto = constructor.prototype;
|
|
120
|
-
|
|
121
|
-
// Walk up the prototype chain
|
|
131
|
+
|
|
122
132
|
while (currentProto && currentProto !== Object.prototype) {
|
|
123
|
-
// Get
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
this.
|
|
133
|
+
// Get ALL property descriptors (including getters/setters)
|
|
134
|
+
const descriptors = Object.getOwnPropertyDescriptors(currentProto);
|
|
135
|
+
|
|
136
|
+
for (const [propName, descriptor] of Object.entries(descriptors)) {
|
|
137
|
+
if (propName === "constructor") continue;
|
|
138
|
+
|
|
139
|
+
// Try each injection type
|
|
140
|
+
this.tryInjectAutowired(
|
|
141
|
+
instance,
|
|
142
|
+
currentProto,
|
|
143
|
+
propName,
|
|
144
|
+
constructor.name,
|
|
145
|
+
);
|
|
146
|
+
this.tryInjectByToken(
|
|
147
|
+
instance,
|
|
148
|
+
currentProto,
|
|
149
|
+
propName,
|
|
150
|
+
constructor.name,
|
|
151
|
+
);
|
|
152
|
+
this.tryInjectValue(instance, currentProto, propName, constructor.name);
|
|
153
|
+
this.tryInjectRepository(
|
|
154
|
+
instance,
|
|
155
|
+
currentProto,
|
|
156
|
+
propName,
|
|
157
|
+
constructor.name,
|
|
158
|
+
);
|
|
159
|
+
this.tryInjectLazy(instance, currentProto, propName, constructor.name);
|
|
137
160
|
}
|
|
138
161
|
|
|
139
162
|
currentProto = Object.getPrototypeOf(currentProto);
|
|
140
163
|
}
|
|
164
|
+
|
|
165
|
+
// Also check for properties that might be defined directly on the instance
|
|
166
|
+
// but decorated with @Autowired on the class definition
|
|
167
|
+
this.checkForDecoratedProperties(instance, constructor);
|
|
141
168
|
}
|
|
142
169
|
|
|
143
|
-
private
|
|
170
|
+
private checkForDecoratedProperties(
|
|
171
|
+
instance: any,
|
|
172
|
+
constructor: Function,
|
|
173
|
+
): void {
|
|
174
|
+
// Check all metadata keys that might be attached to properties
|
|
175
|
+
const propertyKeys = [
|
|
176
|
+
...(Reflect.getMetadataKeys(constructor.prototype) || []),
|
|
177
|
+
...(Reflect.getMetadataKeys(instance) || []),
|
|
178
|
+
];
|
|
179
|
+
|
|
180
|
+
// Filter for property-related metadata
|
|
181
|
+
for (const key of propertyKeys) {
|
|
182
|
+
if (key.includes("fragment:")) {
|
|
183
|
+
// This is a Fragment metadata key, need to check if it's attached to a property
|
|
184
|
+
const metadataValue = Reflect.getMetadata(key, constructor.prototype);
|
|
185
|
+
if (metadataValue && typeof metadataValue === "object") {
|
|
186
|
+
// Could be a property metadata
|
|
187
|
+
for (const prop of Object.keys(metadataValue)) {
|
|
188
|
+
if (prop !== "constructor") {
|
|
189
|
+
this.tryInjectAutowired(
|
|
190
|
+
instance,
|
|
191
|
+
constructor.prototype,
|
|
192
|
+
prop,
|
|
193
|
+
constructor.name,
|
|
194
|
+
);
|
|
195
|
+
this.tryInjectByToken(
|
|
196
|
+
instance,
|
|
197
|
+
constructor.prototype,
|
|
198
|
+
prop,
|
|
199
|
+
constructor.name,
|
|
200
|
+
);
|
|
201
|
+
this.tryInjectValue(
|
|
202
|
+
instance,
|
|
203
|
+
constructor.prototype,
|
|
204
|
+
prop,
|
|
205
|
+
constructor.name,
|
|
206
|
+
);
|
|
207
|
+
this.tryInjectRepository(
|
|
208
|
+
instance,
|
|
209
|
+
constructor.prototype,
|
|
210
|
+
prop,
|
|
211
|
+
constructor.name,
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
private tryInjectAutowired(
|
|
221
|
+
instance: any,
|
|
222
|
+
proto: any,
|
|
223
|
+
prop: string,
|
|
224
|
+
className: string,
|
|
225
|
+
): void {
|
|
144
226
|
const type = Reflect.getMetadata(METADATA_KEYS.AUTOWIRED, proto, prop);
|
|
145
|
-
|
|
227
|
+
|
|
146
228
|
if (!type) return;
|
|
147
229
|
|
|
148
230
|
console.log(` 💉 @Autowired found: ${className}.${prop} -> ${type.name}`);
|
|
149
|
-
|
|
231
|
+
|
|
150
232
|
const isOptional = Reflect.getMetadata(METADATA_KEYS.OPTIONAL, proto, prop);
|
|
151
233
|
|
|
152
234
|
try {
|
|
@@ -155,22 +237,29 @@ export class DIContainer {
|
|
|
155
237
|
} catch (error) {
|
|
156
238
|
if (!isOptional) {
|
|
157
239
|
throw new Error(
|
|
158
|
-
`Failed to autowire ${type.name} into ${className}.${prop}: ${error}
|
|
240
|
+
`Failed to autowire ${type.name} into ${className}.${prop}: ${error}`,
|
|
159
241
|
);
|
|
160
242
|
}
|
|
161
|
-
console.warn(
|
|
243
|
+
console.warn(
|
|
244
|
+
` ⚠️ Optional dependency ${type.name} not available for ${className}.${prop}`,
|
|
245
|
+
);
|
|
162
246
|
instance[prop] = undefined;
|
|
163
247
|
}
|
|
164
248
|
}
|
|
165
249
|
|
|
166
|
-
private tryInjectByToken(
|
|
250
|
+
private tryInjectByToken(
|
|
251
|
+
instance: any,
|
|
252
|
+
proto: any,
|
|
253
|
+
prop: string,
|
|
254
|
+
className: string,
|
|
255
|
+
): void {
|
|
167
256
|
const token = Reflect.getMetadata(METADATA_KEYS.INJECT, proto, prop);
|
|
168
|
-
|
|
257
|
+
|
|
169
258
|
if (!token) return;
|
|
170
259
|
|
|
171
|
-
const tokenName = typeof token ===
|
|
260
|
+
const tokenName = typeof token === "string" ? token : token.name;
|
|
172
261
|
console.log(` 💉 @Inject found: ${className}.${prop} -> ${tokenName}`);
|
|
173
|
-
|
|
262
|
+
|
|
174
263
|
const isOptional = Reflect.getMetadata(METADATA_KEYS.OPTIONAL, proto, prop);
|
|
175
264
|
|
|
176
265
|
try {
|
|
@@ -179,17 +268,24 @@ export class DIContainer {
|
|
|
179
268
|
} catch (error) {
|
|
180
269
|
if (!isOptional) {
|
|
181
270
|
throw new Error(
|
|
182
|
-
`Failed to inject ${tokenName} into ${className}.${prop}: ${error}
|
|
271
|
+
`Failed to inject ${tokenName} into ${className}.${prop}: ${error}`,
|
|
183
272
|
);
|
|
184
273
|
}
|
|
185
|
-
console.warn(
|
|
274
|
+
console.warn(
|
|
275
|
+
` ⚠️ Optional dependency ${tokenName} not available for ${className}.${prop}`,
|
|
276
|
+
);
|
|
186
277
|
instance[prop] = undefined;
|
|
187
278
|
}
|
|
188
279
|
}
|
|
189
280
|
|
|
190
|
-
private tryInjectValue(
|
|
281
|
+
private tryInjectValue(
|
|
282
|
+
instance: any,
|
|
283
|
+
proto: any,
|
|
284
|
+
prop: string,
|
|
285
|
+
className: string,
|
|
286
|
+
): void {
|
|
191
287
|
const expression = Reflect.getMetadata(METADATA_KEYS.VALUE, proto, prop);
|
|
192
|
-
|
|
288
|
+
|
|
193
289
|
if (expression === undefined) return;
|
|
194
290
|
|
|
195
291
|
console.log(` 🔧 @Value found: ${className}.${prop} = ${expression}`);
|
|
@@ -197,38 +293,60 @@ export class DIContainer {
|
|
|
197
293
|
console.log(` ✅ Set value for ${className}.${prop}`);
|
|
198
294
|
}
|
|
199
295
|
|
|
200
|
-
private tryInjectRepository(
|
|
201
|
-
|
|
202
|
-
|
|
296
|
+
private tryInjectRepository(
|
|
297
|
+
instance: any,
|
|
298
|
+
proto: any,
|
|
299
|
+
prop: string,
|
|
300
|
+
className: string,
|
|
301
|
+
): void {
|
|
302
|
+
const entity = Reflect.getMetadata(
|
|
303
|
+
METADATA_KEYS.INJECT_REPOSITORY,
|
|
304
|
+
proto,
|
|
305
|
+
prop,
|
|
306
|
+
);
|
|
307
|
+
|
|
203
308
|
if (!entity) return;
|
|
204
309
|
|
|
205
|
-
console.log(
|
|
206
|
-
|
|
310
|
+
console.log(
|
|
311
|
+
` 💾 @InjectRepository found: ${className}.${prop} -> Repository<${entity.name}>`,
|
|
312
|
+
);
|
|
313
|
+
|
|
207
314
|
try {
|
|
208
315
|
instance[prop] = this.resolveRepository(entity);
|
|
209
|
-
console.log(
|
|
316
|
+
console.log(
|
|
317
|
+
` ✅ Injected Repository<${entity.name}> into ${className}.${prop}`,
|
|
318
|
+
);
|
|
210
319
|
} catch (error) {
|
|
211
320
|
throw new Error(
|
|
212
|
-
`Failed to inject repository for ${entity.name} into ${className}.${prop}: ${error}
|
|
321
|
+
`Failed to inject repository for ${entity.name} into ${className}.${prop}: ${error}`,
|
|
213
322
|
);
|
|
214
323
|
}
|
|
215
324
|
}
|
|
216
325
|
|
|
217
|
-
private tryInjectLazy(
|
|
326
|
+
private tryInjectLazy(
|
|
327
|
+
instance: any,
|
|
328
|
+
proto: any,
|
|
329
|
+
prop: string,
|
|
330
|
+
className: string,
|
|
331
|
+
): void {
|
|
218
332
|
const isLazy = Reflect.getMetadata(METADATA_KEYS.LAZY, proto, prop);
|
|
219
|
-
|
|
333
|
+
|
|
220
334
|
if (!isLazy) return;
|
|
221
335
|
|
|
222
336
|
const type = Reflect.getMetadata("design:type", proto, prop);
|
|
223
|
-
console.log(
|
|
224
|
-
|
|
337
|
+
console.log(
|
|
338
|
+
` ⏳ @Lazy found: ${className}.${prop} (${type?.name || "unknown"})`,
|
|
339
|
+
);
|
|
340
|
+
|
|
225
341
|
let cached: any = null;
|
|
226
342
|
let resolved = false;
|
|
227
343
|
|
|
228
344
|
Object.defineProperty(instance, prop, {
|
|
229
345
|
get: () => {
|
|
230
346
|
if (!resolved) {
|
|
231
|
-
console.log(
|
|
347
|
+
console.log(
|
|
348
|
+
` 🔓 Lazy-loading ${type.name} for ${className}.${prop}`,
|
|
349
|
+
);
|
|
232
350
|
cached = this.resolve(type);
|
|
233
351
|
resolved = true;
|
|
234
352
|
}
|
|
@@ -240,7 +358,9 @@ export class DIContainer {
|
|
|
240
358
|
}
|
|
241
359
|
|
|
242
360
|
private resolveValue(expression: string): any {
|
|
243
|
-
const match = expression.match(
|
|
361
|
+
const match = expression.match(
|
|
362
|
+
/\$\{([^:}]+)(?::([^}]*))?\}|\$([A-Z_][A-Z0-9_]*)/i,
|
|
363
|
+
);
|
|
244
364
|
if (match) {
|
|
245
365
|
const key = match[1] || match[3];
|
|
246
366
|
const defaultValue = match[2];
|
|
@@ -279,15 +399,15 @@ export class DIContainer {
|
|
|
279
399
|
try {
|
|
280
400
|
const { TypeORMModule } = require("../../typeorm/typeorm-module");
|
|
281
401
|
const dataSource = TypeORMModule.getDataSource();
|
|
282
|
-
|
|
402
|
+
|
|
283
403
|
if (!dataSource || !dataSource.isInitialized) {
|
|
284
404
|
throw new Error("TypeORM DataSource not initialized");
|
|
285
405
|
}
|
|
286
|
-
|
|
406
|
+
|
|
287
407
|
return dataSource.getRepository(entity);
|
|
288
408
|
} catch (error) {
|
|
289
409
|
throw new Error(
|
|
290
|
-
`Failed to resolve repository for ${entity.name}: ${(error as Error)?.message}
|
|
410
|
+
`Failed to resolve repository for ${entity.name}: ${(error as Error)?.message}`,
|
|
291
411
|
);
|
|
292
412
|
}
|
|
293
413
|
}
|
|
@@ -311,4 +431,4 @@ export class DIContainer {
|
|
|
311
431
|
reset(): void {
|
|
312
432
|
this.clear();
|
|
313
433
|
}
|
|
314
|
-
}
|
|
434
|
+
}
|