nitrostack 1.0.82 → 1.0.83
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/core/di/container.d.ts +5 -0
- package/dist/core/di/container.d.ts.map +1 -1
- package/dist/core/di/container.js +13 -1
- package/dist/core/di/container.js.map +1 -1
- package/dist/core/di/injectable.decorator.d.ts +30 -5
- package/dist/core/di/injectable.decorator.d.ts.map +1 -1
- package/dist/core/di/injectable.decorator.js +14 -5
- package/dist/core/di/injectable.decorator.js.map +1 -1
- package/dist/core/di/metadata-shim.d.ts +31 -0
- package/dist/core/di/metadata-shim.d.ts.map +1 -0
- package/dist/core/di/metadata-shim.js +181 -0
- package/dist/core/di/metadata-shim.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -2
- package/dist/core/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -43,6 +43,11 @@ export declare class DIContainer {
|
|
|
43
43
|
resolve<T>(token: InjectionToken<T>): T;
|
|
44
44
|
/**
|
|
45
45
|
* Get constructor dependencies from metadata
|
|
46
|
+
*
|
|
47
|
+
* Priority:
|
|
48
|
+
* 1. Explicit deps in @Injectable({ deps: [...] }) - works in ESM
|
|
49
|
+
* 2. @Inject() parameter decorators
|
|
50
|
+
* 3. design:paramtypes from TypeScript (may not work in ESM)
|
|
46
51
|
*/
|
|
47
52
|
private getDependencies;
|
|
48
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/core/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;;GAGG;AAEH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAClC,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAC3B,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AAEH,KAAK,QAAQ,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,SAAS,CAA2C;IAE5D,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAInE;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI1D;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;IA8BvC
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/core/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B;;;GAGG;AAEH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAClC,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAC3B,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AAEH,KAAK,QAAQ,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,SAAS,CAA2C;IAE5D,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAInE;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI1D;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;IA8BvC;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;CAGpC"}
|
|
@@ -64,9 +64,21 @@ export class DIContainer {
|
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Get constructor dependencies from metadata
|
|
67
|
+
*
|
|
68
|
+
* Priority:
|
|
69
|
+
* 1. Explicit deps in @Injectable({ deps: [...] }) - works in ESM
|
|
70
|
+
* 2. @Inject() parameter decorators
|
|
71
|
+
* 3. design:paramtypes from TypeScript (may not work in ESM)
|
|
67
72
|
*/
|
|
68
73
|
getDependencies(target) {
|
|
69
|
-
//
|
|
74
|
+
// FIRST: Check for explicit deps in @Injectable({ deps: [...] })
|
|
75
|
+
// This is the most reliable method for ESM compatibility
|
|
76
|
+
const explicitDeps = Reflect.getMetadata('nitrostack:deps', target);
|
|
77
|
+
if (explicitDeps && explicitDeps.length > 0) {
|
|
78
|
+
return explicitDeps;
|
|
79
|
+
}
|
|
80
|
+
// SECOND: Get design:paramtypes metadata set by TypeScript
|
|
81
|
+
// This may be empty in ESM if reflect-metadata wasn't loaded early enough
|
|
70
82
|
const params = Reflect.getMetadata('design:paramtypes', target) || [];
|
|
71
83
|
// Check for @Inject tokens which override the types
|
|
72
84
|
const injectTokens = Reflect.getMetadata('nitrostack:inject', target) || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/core/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAkB1B;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAC,QAAQ,CAAc;IAC7B,SAAS,GAAkC,IAAI,GAAG,EAAE,CAAC;IACrD,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IAE5D,gBAAuB,CAAC;IAExB;;OAEG;IACH,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;;;;OAIG;IACH,QAAQ,CAAI,KAAwB,EAAE,QAAsB;QAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAa,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAI,KAAwB,EAAE,KAAQ;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAI,KAAwB;QACjC,gCAAgC;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;QACxC,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAEpD,yDAAyD;QACzD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC/F,CAAC;QAED,+BAA+B;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAoB,CAAC,CAAC;QAEhE,mCAAmC;QACnC,MAAM,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1E,kBAAkB;QAClB,MAAM,aAAa,GAAG,QAAuB,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,oBAAoB,CAAC,CAAC;QAE5D,iBAAiB;QACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEpC,OAAO,QAAa,CAAC;IACvB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/core/di/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,47 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { InjectionToken } from './container.js';
|
|
3
3
|
import type { ClassConstructor } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Options for @Injectable decorator
|
|
6
|
+
*/
|
|
7
|
+
export interface InjectableOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Explicit dependencies for ESM compatibility.
|
|
10
|
+
*
|
|
11
|
+
* In ESM environments, TypeScript's emitDecoratorMetadata may not work
|
|
12
|
+
* reliably due to module loading order. Use this to explicitly declare
|
|
13
|
+
* constructor dependencies.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* @Injectable({ deps: [DatabaseService, LoggerService] })
|
|
18
|
+
* export class UserService {
|
|
19
|
+
* constructor(private db: DatabaseService, private logger: LoggerService) {}
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
deps?: InjectionToken[];
|
|
24
|
+
}
|
|
4
25
|
/**
|
|
5
26
|
* Marks a class as injectable (can be used with DI)
|
|
6
27
|
*
|
|
7
|
-
* @example
|
|
28
|
+
* @example Basic usage (relies on TypeScript's emitDecoratorMetadata):
|
|
8
29
|
* ```typescript
|
|
9
30
|
* @Injectable()
|
|
10
31
|
* export class UserService {
|
|
11
32
|
* constructor(private db: DatabaseService) {}
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
12
35
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
36
|
+
* @example With explicit deps (recommended for ESM compatibility):
|
|
37
|
+
* ```typescript
|
|
38
|
+
* @Injectable({ deps: [DatabaseService] })
|
|
39
|
+
* export class UserService {
|
|
40
|
+
* constructor(private db: DatabaseService) {}
|
|
16
41
|
* }
|
|
17
42
|
* ```
|
|
18
43
|
*/
|
|
19
|
-
export declare function Injectable(): ClassDecorator;
|
|
44
|
+
export declare function Injectable(options?: InjectableOptions): ClassDecorator;
|
|
20
45
|
/**
|
|
21
46
|
* Inject a specific token (optional - for custom injection)
|
|
22
47
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/di/injectable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAe,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"injectable.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/di/injectable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAe,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAetE;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,kBAAkB,CAMhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAE1E"}
|
|
@@ -2,24 +2,33 @@ import 'reflect-metadata';
|
|
|
2
2
|
import { DIContainer } from './container.js';
|
|
3
3
|
const INJECTABLE_KEY = 'nitrostack:injectable';
|
|
4
4
|
const INJECT_KEY = 'nitrostack:inject';
|
|
5
|
+
const DEPS_KEY = 'nitrostack:deps';
|
|
5
6
|
/**
|
|
6
7
|
* Marks a class as injectable (can be used with DI)
|
|
7
8
|
*
|
|
8
|
-
* @example
|
|
9
|
+
* @example Basic usage (relies on TypeScript's emitDecoratorMetadata):
|
|
9
10
|
* ```typescript
|
|
10
11
|
* @Injectable()
|
|
11
12
|
* export class UserService {
|
|
12
13
|
* constructor(private db: DatabaseService) {}
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
13
16
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
+
* @example With explicit deps (recommended for ESM compatibility):
|
|
18
|
+
* ```typescript
|
|
19
|
+
* @Injectable({ deps: [DatabaseService] })
|
|
20
|
+
* export class UserService {
|
|
21
|
+
* constructor(private db: DatabaseService) {}
|
|
17
22
|
* }
|
|
18
23
|
* ```
|
|
19
24
|
*/
|
|
20
|
-
export function Injectable() {
|
|
25
|
+
export function Injectable(options) {
|
|
21
26
|
return (target) => {
|
|
22
27
|
Reflect.defineMetadata(INJECTABLE_KEY, true, target);
|
|
28
|
+
// Store explicit deps if provided (for ESM compatibility)
|
|
29
|
+
if (options?.deps && options.deps.length > 0) {
|
|
30
|
+
Reflect.defineMetadata(DEPS_KEY, options.deps, target);
|
|
31
|
+
}
|
|
23
32
|
// Auto-register in DI container
|
|
24
33
|
const container = DIContainer.getInstance();
|
|
25
34
|
if (!container.has(target)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.decorator.js","sourceRoot":"","sources":["../../../src/core/di/injectable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAG7D,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"injectable.decorator.js","sourceRoot":"","sources":["../../../src/core/di/injectable.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAG7D,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AAwBnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAErD,0DAA0D;QAC1D,IAAI,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAA0B,CAAC,EAAE,CAAC;YAC/C,SAAS,CAAC,QAAQ,CAAC,MAA0B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,KAAqB;IAC1C,OAAO,CAAC,MAAc,EAAE,WAAwC,EAAE,cAAsB,EAAE,EAAE;QAC1F,MAAM,cAAc,GAAqB,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACvF,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QACvC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,OAAO,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata Shim for ESM Compatibility
|
|
3
|
+
*
|
|
4
|
+
* This shim ensures that decorator metadata is captured even when
|
|
5
|
+
* reflect-metadata hasn't loaded yet (common in ESM due to module hoisting).
|
|
6
|
+
*
|
|
7
|
+
* How it works:
|
|
8
|
+
* 1. Before reflect-metadata loads, we install stub functions
|
|
9
|
+
* 2. These stubs store metadata in a fallback WeakMap
|
|
10
|
+
* 3. Once reflect-metadata loads, we merge the fallback data
|
|
11
|
+
* 4. DIContainer checks both sources when resolving dependencies
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Check if we have fallback metadata for a target
|
|
15
|
+
*/
|
|
16
|
+
export declare function hasFallbackMetadata(target: object): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Get metadata from fallback storage (exported for DIContainer)
|
|
19
|
+
*/
|
|
20
|
+
export declare function getFallbackMetadata(metadataKey: string | symbol, target: object, propertyKey?: string | symbol): unknown;
|
|
21
|
+
/**
|
|
22
|
+
* Install the metadata shim
|
|
23
|
+
* This should be called as early as possible, before any decorated modules load
|
|
24
|
+
*/
|
|
25
|
+
export declare function installMetadataShim(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get metadata with fallback support
|
|
28
|
+
* This is the main function DIContainer should use
|
|
29
|
+
*/
|
|
30
|
+
export declare function getMetadataWithFallback(metadataKey: string | symbol, target: object, propertyKey?: string | symbol): unknown;
|
|
31
|
+
//# sourceMappingURL=metadata-shim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-shim.d.ts","sourceRoot":"","sources":["../../../src/core/di/metadata-shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkDH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAC5B,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA0G1C;AAaD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAC5B,OAAO,CAYT"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata Shim for ESM Compatibility
|
|
3
|
+
*
|
|
4
|
+
* This shim ensures that decorator metadata is captured even when
|
|
5
|
+
* reflect-metadata hasn't loaded yet (common in ESM due to module hoisting).
|
|
6
|
+
*
|
|
7
|
+
* How it works:
|
|
8
|
+
* 1. Before reflect-metadata loads, we install stub functions
|
|
9
|
+
* 2. These stubs store metadata in a fallback WeakMap
|
|
10
|
+
* 3. Once reflect-metadata loads, we merge the fallback data
|
|
11
|
+
* 4. DIContainer checks both sources when resolving dependencies
|
|
12
|
+
*/
|
|
13
|
+
// Fallback storage for metadata captured before reflect-metadata loads
|
|
14
|
+
const fallbackMetadataStore = new WeakMap();
|
|
15
|
+
/**
|
|
16
|
+
* Get or create metadata map for a target
|
|
17
|
+
*/
|
|
18
|
+
function getTargetMetadata(target) {
|
|
19
|
+
let targetMeta = fallbackMetadataStore.get(target);
|
|
20
|
+
if (!targetMeta) {
|
|
21
|
+
targetMeta = new Map();
|
|
22
|
+
fallbackMetadataStore.set(target, targetMeta);
|
|
23
|
+
}
|
|
24
|
+
return targetMeta;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Store metadata in fallback storage
|
|
28
|
+
*/
|
|
29
|
+
function fallbackDefineMetadata(metadataKey, metadataValue, target, propertyKey) {
|
|
30
|
+
const targetMeta = getTargetMetadata(target);
|
|
31
|
+
let keyMeta = targetMeta.get(metadataKey);
|
|
32
|
+
if (!keyMeta) {
|
|
33
|
+
keyMeta = new Map();
|
|
34
|
+
targetMeta.set(metadataKey, keyMeta);
|
|
35
|
+
}
|
|
36
|
+
keyMeta.set(propertyKey, metadataValue);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get metadata from fallback storage
|
|
40
|
+
*/
|
|
41
|
+
function fallbackGetMetadata(metadataKey, target, propertyKey) {
|
|
42
|
+
const targetMeta = fallbackMetadataStore.get(target);
|
|
43
|
+
if (!targetMeta)
|
|
44
|
+
return undefined;
|
|
45
|
+
const keyMeta = targetMeta.get(metadataKey);
|
|
46
|
+
if (!keyMeta)
|
|
47
|
+
return undefined;
|
|
48
|
+
return keyMeta.get(propertyKey);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if we have fallback metadata for a target
|
|
52
|
+
*/
|
|
53
|
+
export function hasFallbackMetadata(target) {
|
|
54
|
+
return fallbackMetadataStore.has(target);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get metadata from fallback storage (exported for DIContainer)
|
|
58
|
+
*/
|
|
59
|
+
export function getFallbackMetadata(metadataKey, target, propertyKey) {
|
|
60
|
+
return fallbackGetMetadata(metadataKey, target, propertyKey);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Install the metadata shim
|
|
64
|
+
* This should be called as early as possible, before any decorated modules load
|
|
65
|
+
*/
|
|
66
|
+
export function installMetadataShim() {
|
|
67
|
+
// Ensure Reflect object exists
|
|
68
|
+
if (typeof globalThis.Reflect === 'undefined') {
|
|
69
|
+
globalThis.Reflect = {};
|
|
70
|
+
}
|
|
71
|
+
const R = globalThis.Reflect;
|
|
72
|
+
// Store original functions if they exist
|
|
73
|
+
const originalMetadata = R.metadata;
|
|
74
|
+
const originalDefineMetadata = R.defineMetadata;
|
|
75
|
+
const originalGetMetadata = R.getMetadata;
|
|
76
|
+
const originalHasMetadata = R.hasMetadata;
|
|
77
|
+
// Flag to track if real reflect-metadata is loaded
|
|
78
|
+
let realReflectMetadataLoaded = typeof originalMetadata === 'function' &&
|
|
79
|
+
typeof originalDefineMetadata === 'function';
|
|
80
|
+
// Install shim for Reflect.metadata (used by __metadata helper)
|
|
81
|
+
if (!R.metadata) {
|
|
82
|
+
R.metadata = function (metadataKey, metadataValue) {
|
|
83
|
+
return function (target, propertyKey) {
|
|
84
|
+
// Try real reflect-metadata first (it might have loaded by now)
|
|
85
|
+
if (typeof R._realMetadata === 'function') {
|
|
86
|
+
return R._realMetadata(metadataKey, metadataValue)(target, propertyKey);
|
|
87
|
+
}
|
|
88
|
+
// Store in fallback
|
|
89
|
+
fallbackDefineMetadata(metadataKey, metadataValue, target, propertyKey);
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// Install shim for Reflect.defineMetadata
|
|
94
|
+
if (!R.defineMetadata) {
|
|
95
|
+
R.defineMetadata = function (metadataKey, metadataValue, target, propertyKey) {
|
|
96
|
+
// Try real reflect-metadata first
|
|
97
|
+
if (typeof R._realDefineMetadata === 'function') {
|
|
98
|
+
return R._realDefineMetadata(metadataKey, metadataValue, target, propertyKey);
|
|
99
|
+
}
|
|
100
|
+
// Store in fallback
|
|
101
|
+
fallbackDefineMetadata(metadataKey, metadataValue, target, propertyKey);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// Install shim for Reflect.getMetadata
|
|
105
|
+
if (!R.getMetadata) {
|
|
106
|
+
R.getMetadata = function (metadataKey, target, propertyKey) {
|
|
107
|
+
// Try real reflect-metadata first
|
|
108
|
+
if (typeof R._realGetMetadata === 'function') {
|
|
109
|
+
const result = R._realGetMetadata(metadataKey, target, propertyKey);
|
|
110
|
+
if (result !== undefined)
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
// Fall back to our storage
|
|
114
|
+
return fallbackGetMetadata(metadataKey, target, propertyKey);
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// Install shim for Reflect.hasMetadata
|
|
118
|
+
if (!R.hasMetadata) {
|
|
119
|
+
R.hasMetadata = function (metadataKey, target, propertyKey) {
|
|
120
|
+
// Try real reflect-metadata first
|
|
121
|
+
if (typeof R._realHasMetadata === 'function') {
|
|
122
|
+
if (R._realHasMetadata(metadataKey, target, propertyKey))
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
// Check fallback
|
|
126
|
+
return fallbackGetMetadata(metadataKey, target, propertyKey) !== undefined;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// Hook to capture when real reflect-metadata loads
|
|
130
|
+
// We do this by watching for defineMetadata to be replaced
|
|
131
|
+
const checkForRealReflectMetadata = () => {
|
|
132
|
+
if (!realReflectMetadataLoaded &&
|
|
133
|
+
typeof R.defineMetadata === 'function' &&
|
|
134
|
+
R.defineMetadata !== fallbackDefineMetadata) {
|
|
135
|
+
realReflectMetadataLoaded = true;
|
|
136
|
+
// Store references to real functions
|
|
137
|
+
R._realMetadata = R.metadata;
|
|
138
|
+
R._realDefineMetadata = R.defineMetadata;
|
|
139
|
+
R._realGetMetadata = R.getMetadata;
|
|
140
|
+
R._realHasMetadata = R.hasMetadata;
|
|
141
|
+
// Merge fallback data into real reflect-metadata
|
|
142
|
+
mergeFallbackToReflectMetadata();
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
// Check periodically (hacky but necessary for ESM)
|
|
146
|
+
if (typeof setTimeout !== 'undefined') {
|
|
147
|
+
setTimeout(checkForRealReflectMetadata, 0);
|
|
148
|
+
setTimeout(checkForRealReflectMetadata, 10);
|
|
149
|
+
setTimeout(checkForRealReflectMetadata, 50);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Merge all fallback metadata into real reflect-metadata
|
|
154
|
+
*/
|
|
155
|
+
function mergeFallbackToReflectMetadata() {
|
|
156
|
+
const R = globalThis.Reflect;
|
|
157
|
+
if (typeof R._realDefineMetadata !== 'function')
|
|
158
|
+
return;
|
|
159
|
+
// We can't iterate WeakMap, but the important metadata
|
|
160
|
+
// will be accessed through getMetadata which checks both sources
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get metadata with fallback support
|
|
164
|
+
* This is the main function DIContainer should use
|
|
165
|
+
*/
|
|
166
|
+
export function getMetadataWithFallback(metadataKey, target, propertyKey) {
|
|
167
|
+
// Try standard Reflect.getMetadata first
|
|
168
|
+
if (typeof Reflect !== 'undefined' && typeof Reflect.getMetadata === 'function') {
|
|
169
|
+
// Reflect.getMetadata signature varies - use type assertion
|
|
170
|
+
const result = propertyKey !== undefined
|
|
171
|
+
? Reflect.getMetadata(metadataKey, target, propertyKey)
|
|
172
|
+
: Reflect.getMetadata(metadataKey, target);
|
|
173
|
+
if (result !== undefined)
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
// Fall back to our storage
|
|
177
|
+
return fallbackGetMetadata(metadataKey, target, propertyKey);
|
|
178
|
+
}
|
|
179
|
+
// Install the shim immediately when this module loads
|
|
180
|
+
installMetadataShim();
|
|
181
|
+
//# sourceMappingURL=metadata-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-shim.js","sourceRoot":"","sources":["../../../src/core/di/metadata-shim.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export type { ExceptionFilterInterface, ExceptionFilterConstructor } from './fil
|
|
|
38
38
|
export { ExceptionFilter, UseFilters, getExceptionFilterMetadata, isExceptionFilter } from './filters/exception-filter.decorator.js';
|
|
39
39
|
export { DIContainer } from './di/container.js';
|
|
40
40
|
export { Injectable, Inject, isInjectable, getInjectTokens } from './di/injectable.decorator.js';
|
|
41
|
+
export type { InjectableOptions } from './di/injectable.decorator.js';
|
|
41
42
|
export { Cache, clearCache, getCacheMetadata } from './decorators/cache.decorator.js';
|
|
42
43
|
export type { CacheOptions, CacheStorage } from './decorators/cache.decorator.js';
|
|
43
44
|
export { RateLimit, resetRateLimit, getRateLimitMetadata } from './decorators/rate-limit.decorator.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* NitroStack Core Exports
|
|
3
3
|
*/
|
|
4
|
-
//
|
|
5
|
-
// This ensures decorator metadata is available for dependency injection
|
|
4
|
+
// Import reflect-metadata for decorator support
|
|
6
5
|
import 'reflect-metadata';
|
|
7
6
|
// Server
|
|
8
7
|
export { createServer, NitroStackServer } from './server.js';
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|