@tsed/di 8.9.5 → 8.10.0-rc.2
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/lib/browser/chunks/injectable.js +65 -0
- package/lib/browser/chunks/injectable.js.map +1 -0
- package/lib/browser/common/constants/constants.js +9 -0
- package/lib/browser/common/constants/constants.js.map +1 -0
- package/lib/browser/common/decorators/autoInjectable.js +26 -0
- package/lib/browser/common/decorators/autoInjectable.js.map +1 -0
- package/lib/browser/common/decorators/configuration.js +24 -0
- package/lib/browser/common/decorators/configuration.js.map +1 -0
- package/lib/browser/common/decorators/constant.js +27 -0
- package/lib/browser/common/decorators/constant.js.map +1 -0
- package/lib/browser/common/decorators/controller.js +23 -0
- package/lib/browser/common/decorators/controller.js.map +1 -0
- package/lib/browser/common/decorators/inject.js +62 -0
- package/lib/browser/common/decorators/inject.js.map +1 -0
- package/lib/browser/common/decorators/injectable.js +14 -0
- package/lib/browser/common/decorators/injectable.js.map +1 -0
- package/lib/browser/common/decorators/intercept.js +57 -0
- package/lib/browser/common/decorators/intercept.js.map +1 -0
- package/lib/browser/common/decorators/interceptor.js +11 -0
- package/lib/browser/common/decorators/interceptor.js.map +1 -0
- package/lib/browser/common/decorators/lazyInject.js +43 -0
- package/lib/browser/common/decorators/lazyInject.js.map +1 -0
- package/lib/browser/common/decorators/module.js +22 -0
- package/lib/browser/common/decorators/module.js.map +1 -0
- package/lib/browser/common/decorators/opts.js +12 -0
- package/lib/browser/common/decorators/opts.js.map +1 -0
- package/lib/browser/common/decorators/overrideProvider.js +10 -0
- package/lib/browser/common/decorators/overrideProvider.js.map +1 -0
- package/lib/browser/common/decorators/scope.js +9 -0
- package/lib/browser/common/decorators/scope.js.map +1 -0
- package/lib/browser/common/decorators/service.js +8 -0
- package/lib/browser/common/decorators/service.js.map +1 -0
- package/lib/browser/common/decorators/useOpts.js +23 -0
- package/lib/browser/common/decorators/useOpts.js.map +1 -0
- package/lib/browser/common/decorators/value.js +23 -0
- package/lib/browser/common/decorators/value.js.map +1 -0
- package/lib/browser/common/domain/Container.js +64 -0
- package/lib/browser/common/domain/Container.js.map +1 -0
- package/lib/browser/common/domain/ControllerProvider.js +35 -0
- package/lib/browser/common/domain/ControllerProvider.js.map +1 -0
- package/lib/browser/common/domain/InjectablePropertyType.js +5 -0
- package/lib/browser/common/domain/InjectablePropertyType.js.map +1 -0
- package/lib/browser/common/domain/LocalsContainer.js +13 -0
- package/lib/browser/common/domain/LocalsContainer.js.map +1 -0
- package/lib/browser/common/domain/Provider.js +144 -0
- package/lib/browser/common/domain/Provider.js.map +1 -0
- package/lib/browser/common/domain/ProviderScope.js +5 -0
- package/lib/browser/common/domain/ProviderScope.js.map +1 -0
- package/lib/browser/common/domain/ProviderType.js +5 -0
- package/lib/browser/common/domain/ProviderType.js.map +1 -0
- package/lib/browser/common/errors/InjectionError.js +31 -0
- package/lib/browser/common/errors/InjectionError.js.map +1 -0
- package/lib/browser/common/errors/InvalidPropertyTokenError.js +17 -0
- package/lib/browser/common/errors/InvalidPropertyTokenError.js.map +1 -0
- package/lib/browser/common/fn/configuration.js +13 -0
- package/lib/browser/common/fn/configuration.js.map +1 -0
- package/lib/browser/common/fn/constant.js +8 -0
- package/lib/browser/common/fn/constant.js.map +1 -0
- package/lib/browser/common/fn/inject.js +13 -0
- package/lib/browser/common/fn/inject.js.map +1 -0
- package/lib/browser/common/fn/injectMany.js +9 -0
- package/lib/browser/common/fn/injectMany.js.map +1 -0
- package/lib/browser/common/fn/injectable.js +8 -0
- package/lib/browser/common/fn/injectable.js.map +1 -0
- package/lib/browser/common/fn/injector.js +13 -0
- package/lib/browser/common/fn/injector.js.map +1 -0
- package/lib/browser/common/fn/lazyInject.js +23 -0
- package/lib/browser/common/fn/lazyInject.js.map +1 -0
- package/lib/browser/common/fn/localsContainer.js +29 -0
- package/lib/browser/common/fn/localsContainer.js.map +1 -0
- package/lib/browser/common/fn/refValue.js +15 -0
- package/lib/browser/common/fn/refValue.js.map +1 -0
- package/lib/browser/common/index.js +113 -0
- package/lib/browser/common/index.js.map +1 -0
- package/lib/browser/common/registries/GlobalProviders.js +102 -0
- package/lib/browser/common/registries/GlobalProviders.js.map +1 -0
- package/lib/browser/common/registries/ProviderRegistry.js +8 -0
- package/lib/browser/common/registries/ProviderRegistry.js.map +1 -0
- package/lib/browser/common/services/DIConfiguration.js +99 -0
- package/lib/browser/common/services/DIConfiguration.js.map +1 -0
- package/lib/browser/common/services/DILogger.js +8 -0
- package/lib/browser/common/services/DILogger.js.map +1 -0
- package/lib/browser/common/services/InjectorService.js +378 -0
- package/lib/browser/common/services/InjectorService.js.map +1 -0
- package/lib/browser/common/utils/colors.js +5 -0
- package/lib/browser/common/utils/colors.js.map +1 -0
- package/lib/browser/common/utils/createContainer.js +10 -0
- package/lib/browser/common/utils/createContainer.js.map +1 -0
- package/lib/browser/common/utils/discoverHooks.js +17 -0
- package/lib/browser/common/utils/discoverHooks.js.map +1 -0
- package/lib/browser/common/utils/getConfiguration.js +20 -0
- package/lib/browser/common/utils/getConfiguration.js.map +1 -0
- package/lib/browser/common/utils/getConstructorDependencies.js +12 -0
- package/lib/browser/common/utils/getConstructorDependencies.js.map +1 -0
- package/lib/browser/common/utils/providerBuilder.js +8 -0
- package/lib/browser/common/utils/providerBuilder.js.map +1 -0
- package/lib/esm/common/decorators/autoInjectable.js +1 -1
- package/lib/esm/common/decorators/autoInjectable.js.map +1 -1
- package/lib/esm/common/decorators/configuration.js +2 -1
- package/lib/esm/common/decorators/configuration.js.map +1 -1
- package/lib/esm/common/decorators/constant.js +3 -2
- package/lib/esm/common/decorators/constant.js.map +1 -1
- package/lib/esm/common/decorators/controller.js +13 -6
- package/lib/esm/common/decorators/controller.js.map +1 -1
- package/lib/esm/common/decorators/inject.js +6 -1
- package/lib/esm/common/decorators/inject.js.map +1 -1
- package/lib/esm/common/decorators/intercept.js +5 -1
- package/lib/esm/common/decorators/intercept.js.map +1 -1
- package/lib/esm/common/decorators/lazyInject.js +2 -1
- package/lib/esm/common/decorators/lazyInject.js.map +1 -1
- package/lib/esm/common/decorators/module.js +1 -1
- package/lib/esm/common/decorators/module.js.map +1 -1
- package/lib/esm/common/decorators/opts.js +1 -1
- package/lib/esm/common/decorators/opts.js.map +1 -1
- package/lib/esm/common/decorators/scope.js +1 -1
- package/lib/esm/common/decorators/scope.js.map +1 -1
- package/lib/esm/common/decorators/useOpts.js +4 -1
- package/lib/esm/common/decorators/useOpts.js.map +1 -1
- package/lib/esm/common/decorators/value.js +2 -2
- package/lib/esm/common/decorators/value.js.map +1 -1
- package/lib/esm/common/domain/Provider.js +5 -1
- package/lib/esm/common/domain/Provider.js.map +1 -1
- package/lib/esm/common/errors/InjectionError.js +4 -1
- package/lib/esm/common/errors/InjectionError.js.map +1 -1
- package/lib/esm/common/errors/InvalidPropertyTokenError.js +2 -1
- package/lib/esm/common/errors/InvalidPropertyTokenError.js.map +1 -1
- package/lib/esm/common/fn/configuration.js +1 -1
- package/lib/esm/common/fn/configuration.js.map +1 -1
- package/lib/esm/common/fn/lazyInject.js +1 -1
- package/lib/esm/common/fn/lazyInject.js.map +1 -1
- package/lib/esm/common/registries/GlobalProviders.js +1 -1
- package/lib/esm/common/registries/GlobalProviders.js.map +1 -1
- package/lib/esm/common/services/DIConfiguration.js +2 -1
- package/lib/esm/common/services/DIConfiguration.js.map +1 -1
- package/lib/esm/common/services/InjectorService.js +10 -1
- package/lib/esm/common/services/InjectorService.js.map +1 -1
- package/lib/esm/common/utils/discoverHooks.js +1 -1
- package/lib/esm/common/utils/discoverHooks.js.map +1 -1
- package/lib/esm/common/utils/getConfiguration.js +1 -1
- package/lib/esm/common/utils/getConfiguration.js.map +1 -1
- package/lib/esm/common/utils/getConstructorDependencies.js +1 -1
- package/lib/esm/common/utils/getConstructorDependencies.js.map +1 -1
- package/lib/esm/common/utils/providerBuilder.js.map +1 -1
- package/lib/esm/node/decorators/injectContext.js +1 -1
- package/lib/esm/node/decorators/injectContext.js.map +1 -1
- package/lib/esm/node/services/DITest.js +4 -1
- package/lib/esm/node/services/DITest.js.map +1 -1
- package/lib/types/common/decorators/constant.d.ts +1 -1
- package/lib/types/common/decorators/controller.d.ts +1 -1
- package/lib/types/common/decorators/inject.d.ts +1 -1
- package/lib/types/common/decorators/intercept.d.ts +1 -1
- package/lib/types/common/decorators/overrideProvider.d.ts +1 -1
- package/lib/types/common/decorators/value.d.ts +1 -1
- package/lib/types/common/domain/Provider.d.ts +2 -1
- package/lib/types/common/fn/injectable.d.ts +3 -3
- package/lib/types/common/interfaces/RegistrySettings.d.ts +1 -1
- package/lib/types/common/registries/GlobalProviders.d.ts +1 -1
- package/lib/types/common/services/DIConfiguration.d.ts +1 -1
- package/lib/types/common/utils/createContainer.d.ts +1 -1
- package/lib/types/common/utils/discoverHooks.d.ts +1 -1
- package/lib/types/common/utils/getConfiguration.d.ts +1 -1
- package/lib/types/common/utils/providerBuilder.d.ts +2 -1
- package/package.json +17 -19
- package/src/common/decorators/autoInjectable.ts +2 -1
- package/src/common/decorators/configuration.ts +4 -2
- package/src/common/decorators/constant.ts +3 -2
- package/src/common/decorators/controller.ts +18 -10
- package/src/common/decorators/inject.ts +7 -1
- package/src/common/decorators/intercept.ts +8 -1
- package/src/common/decorators/lazyInject.ts +2 -1
- package/src/common/decorators/module.ts +1 -1
- package/src/common/decorators/opts.ts +1 -1
- package/src/common/decorators/overrideProvider.ts +1 -1
- package/src/common/decorators/scope.ts +1 -1
- package/src/common/decorators/useOpts.ts +4 -1
- package/src/common/decorators/value.ts +2 -2
- package/src/common/domain/Provider.ts +6 -1
- package/src/common/errors/InjectionError.ts +4 -1
- package/src/common/errors/InvalidPropertyTokenError.ts +2 -1
- package/src/common/fn/configuration.ts +1 -1
- package/src/common/fn/lazyInject.ts +1 -1
- package/src/common/interfaces/RegistrySettings.ts +1 -1
- package/src/common/registries/GlobalProviders.ts +2 -1
- package/src/common/services/DIConfiguration.ts +3 -1
- package/src/common/services/InjectorService.ts +10 -1
- package/src/common/utils/createContainer.ts +1 -1
- package/src/common/utils/discoverHooks.ts +2 -1
- package/src/common/utils/getConfiguration.ts +2 -1
- package/src/common/utils/getConstructorDependencies.ts +1 -1
- package/src/common/utils/providerBuilder.ts +2 -1
- package/src/node/decorators/injectContext.ts +1 -1
- package/src/node/services/DITest.ts +4 -1
- package/vite.config.mts +45 -0
- package/lib/browser/di.umd.min.js +0 -2
- package/lib/browser/di.umd.min.js.map +0 -1
- package/webpack.config.cjs +0 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Type } from "@tsed/core";
|
|
1
|
+
import { Type } from "@tsed/core/types/Type.js";
|
|
2
2
|
import { Provider } from "../domain/Provider.js";
|
|
3
3
|
import { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
4
4
|
import { RegistrySettings } from "../interfaces/RegistrySettings.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Env } from "@tsed/core";
|
|
1
|
+
import { Env } from "@tsed/core/types/Env.js";
|
|
2
2
|
import type { DILoggerOptions } from "../interfaces/DILoggerOptions.js";
|
|
3
3
|
import type { ImportTokenProviderOpts } from "../interfaces/ImportTokenProviderOpts.js";
|
|
4
4
|
import type { TokenProvider } from "../interfaces/TokenProvider.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { type AbstractType, type Type } from "@tsed/core";
|
|
1
|
+
import { type AbstractType, type Type } from "@tsed/core/types/Type.js";
|
|
2
2
|
export declare function discoverHooks(token: Type | AbstractType<any>): any;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "../registries/ProviderRegistry.js";
|
|
2
|
-
import { Store
|
|
2
|
+
import { Store } from "@tsed/core/types/Store.js";
|
|
3
|
+
import { type Type } from "@tsed/core/types/Type.js";
|
|
3
4
|
import type { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
4
5
|
import type { FactoryTokenProvider, TokenProvider } from "../interfaces/TokenProvider.js";
|
|
5
6
|
type BaseMethodsProvider<TypeOf, BaseProvider, T extends object> = {
|
package/package.json
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
"name": "@tsed/di",
|
|
3
3
|
"description": "DI module for Ts.ED Framework",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "8.
|
|
5
|
+
"version": "8.10.0-rc.2",
|
|
6
6
|
"source": "./src/index.ts",
|
|
7
7
|
"main": "./lib/esm/index.js",
|
|
8
8
|
"module": "./lib/esm/index.js",
|
|
9
9
|
"typings": "./lib/types/index.d.ts",
|
|
10
|
-
"browser": "./lib/browser/
|
|
10
|
+
"browser": "./lib/esm/browser/common/index.js",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
13
|
"tsed-source": "./src/index.ts",
|
|
14
14
|
"types": "./lib/types/index.d.ts",
|
|
15
|
-
"browser": "./lib/browser/
|
|
15
|
+
"browser": "./lib/browser/common/index.js",
|
|
16
16
|
"import": "./lib/esm/index.js",
|
|
17
17
|
"default": "./lib/esm/index.js"
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build": "yarn barrels && yarn build:ts && yarn run build:browser",
|
|
22
|
-
"build:browser": "
|
|
22
|
+
"build:browser": "vite build",
|
|
23
23
|
"barrels": "barrels",
|
|
24
24
|
"test": "vitest run",
|
|
25
25
|
"build:ts": "tsc --build tsconfig.esm.json",
|
|
@@ -30,23 +30,21 @@
|
|
|
30
30
|
"uuid": "^10.0.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@tsed/barrels": "8.
|
|
34
|
-
"@tsed/core": "8.
|
|
35
|
-
"@tsed/hooks": "8.
|
|
33
|
+
"@tsed/barrels": "8.10.0-rc.2",
|
|
34
|
+
"@tsed/core": "8.10.0-rc.2",
|
|
35
|
+
"@tsed/hooks": "8.10.0-rc.2",
|
|
36
36
|
"@tsed/logger": "^7.0.1",
|
|
37
|
-
"@tsed/
|
|
38
|
-
"@tsed/typescript": "8.9.5",
|
|
37
|
+
"@tsed/typescript": "8.10.0-rc.2",
|
|
39
38
|
"cross-env": "7.0.3",
|
|
40
39
|
"eslint": "9.12.0",
|
|
41
40
|
"typescript": "5.4.5",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
41
|
+
"vite": "6.2.2",
|
|
42
|
+
"vitest": "3.1.4"
|
|
44
43
|
},
|
|
45
44
|
"peerDependencies": {
|
|
46
|
-
"@tsed/core": ">=8.
|
|
47
|
-
"@tsed/hooks": ">=8.
|
|
48
|
-
"@tsed/logger": ">=7.0.1"
|
|
49
|
-
"@tsed/schema": ">=8.9.5"
|
|
45
|
+
"@tsed/core": ">=8.0.0",
|
|
46
|
+
"@tsed/hooks": ">=8.0.0",
|
|
47
|
+
"@tsed/logger": ">=7.0.1"
|
|
50
48
|
},
|
|
51
49
|
"peerDependenciesMeta": {
|
|
52
50
|
"@tsed/core": {
|
|
@@ -57,9 +55,6 @@
|
|
|
57
55
|
},
|
|
58
56
|
"@tsed/logger": {
|
|
59
57
|
"optional": false
|
|
60
|
-
},
|
|
61
|
-
"@tsed/schema": {
|
|
62
|
-
"optional": false
|
|
63
58
|
}
|
|
64
59
|
},
|
|
65
60
|
"repository": "https://github.com/tsedio/tsed",
|
|
@@ -68,5 +63,8 @@
|
|
|
68
63
|
},
|
|
69
64
|
"homepage": "https://github.com/tsedio/tsed/tree/production/packages/di",
|
|
70
65
|
"author": "Romain Lenzotti",
|
|
71
|
-
"license": "MIT"
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"publishConfig": {
|
|
68
|
+
"tag": "rc"
|
|
69
|
+
}
|
|
72
70
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {DecoratorParameters
|
|
1
|
+
import {DecoratorParameters} from "@tsed/core/types/DecoratorParameters.js";
|
|
2
|
+
import {DecoratorTypes} from "@tsed/core/types/DecoratorTypes.js";
|
|
3
|
+
import {decoratorTypeOf} from "@tsed/core/utils/decoratorTypeOf.js";
|
|
2
4
|
|
|
3
5
|
import {configuration} from "../fn/configuration.js";
|
|
4
6
|
import {injectable} from "../fn/injectable.js";
|
|
5
7
|
import {injector} from "../fn/injector.js";
|
|
6
|
-
import {
|
|
8
|
+
import {DIConfiguration} from "../services/DIConfiguration.js";
|
|
7
9
|
import {Inject} from "./inject.js";
|
|
8
10
|
|
|
9
11
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {catchError
|
|
1
|
+
import {catchError} from "@tsed/core/utils/catchError.js";
|
|
2
|
+
import {deepClone} from "@tsed/core/utils/deepClone.js";
|
|
2
3
|
|
|
3
4
|
import {constant} from "../fn/constant.js";
|
|
4
5
|
|
|
@@ -36,7 +37,7 @@ export function bindConstant(target: any, propertyKey: string | symbol, expressi
|
|
|
36
37
|
* ## Example
|
|
37
38
|
*
|
|
38
39
|
* ```typescript
|
|
39
|
-
* import {Env} from "@tsed/core";
|
|
40
|
+
* import {Env} from "@tsed/core/domain/Env.js";
|
|
40
41
|
* import {Constant, Value} from "@tsed/di";
|
|
41
42
|
*
|
|
42
43
|
* export class MyClass {
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import {Store} from "@tsed/core/types/Store.js";
|
|
2
|
+
import {Type} from "@tsed/core/types/Type.js";
|
|
3
|
+
import {classOf} from "@tsed/core/utils/classOf.js";
|
|
4
|
+
import {isArrayOrArrayClass} from "@tsed/core/utils/isArray.js";
|
|
5
|
+
import {useDecorators} from "@tsed/core/utils/useDecorators.js";
|
|
3
6
|
|
|
4
7
|
import type {ControllerMiddlewares} from "../domain/ControllerProvider.js";
|
|
5
8
|
import {controller} from "../fn/injectable.js";
|
|
@@ -54,12 +57,17 @@ function mapOptions(options: any): ControllerOptions {
|
|
|
54
57
|
export function Controller(options: PathType | ControllerOptions): ClassDecorator {
|
|
55
58
|
const {children = [], path, ...opts} = mapOptions(options);
|
|
56
59
|
|
|
57
|
-
return useDecorators(
|
|
58
|
-
(target
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
return useDecorators((target: Type) => {
|
|
61
|
+
const factory = controller(target, opts);
|
|
62
|
+
|
|
63
|
+
if (path) {
|
|
64
|
+
factory.store().set("path", path);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
factory.store().set("childrenControllers", children);
|
|
68
|
+
|
|
69
|
+
children.forEach((childToken) => {
|
|
70
|
+
Store.from(childToken).set("parentController", classOf(target));
|
|
71
|
+
});
|
|
72
|
+
});
|
|
65
73
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {DecoratorTypes} from "@tsed/core/types/DecoratorTypes.js";
|
|
2
|
+
import {Metadata} from "@tsed/core/types/Metadata.js";
|
|
3
|
+
import {Store} from "@tsed/core/types/Store.js";
|
|
4
|
+
import {type Type} from "@tsed/core/types/Type.js";
|
|
5
|
+
import {catchError} from "@tsed/core/utils/catchError.js";
|
|
6
|
+
import {decoratorTypeOf} from "@tsed/core/utils/decoratorTypeOf.js";
|
|
7
|
+
import {isPromise} from "@tsed/core/utils/isPromise.js";
|
|
2
8
|
|
|
3
9
|
import {DI_INJECTABLE_PROPS, DI_INVOKE_OPTIONS, DI_USE_OPTIONS} from "../constants/constants.js";
|
|
4
10
|
import {InvalidPropertyTokenError} from "../errors/InvalidPropertyTokenError.js";
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {DecoratorParameters} from "@tsed/core/types/DecoratorParameters.js";
|
|
2
|
+
import {DecoratorTypes} from "@tsed/core/types/DecoratorTypes.js";
|
|
3
|
+
import {Store} from "@tsed/core/types/Store.js";
|
|
4
|
+
import {Type} from "@tsed/core/types/Type.js";
|
|
5
|
+
import {classOf} from "@tsed/core/utils/classOf.js";
|
|
6
|
+
import {decorateMethodsOf} from "@tsed/core/utils/decorateMethodsOf.js";
|
|
7
|
+
import {decoratorTypeOf} from "@tsed/core/utils/decoratorTypeOf.js";
|
|
8
|
+
import {nameOf} from "@tsed/core/utils/nameOf.js";
|
|
2
9
|
|
|
3
10
|
import {DI_INTERCEPTOR_OPTIONS, DI_INVOKE_OPTIONS} from "../constants/constants.js";
|
|
4
11
|
import {inject} from "../fn/inject.js";
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {UnsupportedDecoratorType} from "@tsed/core/errors/UnsupportedDecoratorType.js";
|
|
2
|
+
import {DecoratorTypes} from "@tsed/core/types/DecoratorTypes.js";
|
|
3
|
+
import {Store} from "@tsed/core/types/Store.js";
|
|
4
|
+
import {decoratorTypeOf} from "@tsed/core/utils/decoratorTypeOf.js";
|
|
2
5
|
|
|
3
6
|
import {DI_USE_OPTIONS, DI_USE_PARAM_OPTIONS} from "../constants/constants.js";
|
|
4
7
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {catchError} from "@tsed/core";
|
|
1
|
+
import {catchError} from "@tsed/core/utils/catchError.js";
|
|
2
2
|
|
|
3
3
|
import {injector} from "../fn/injector.js";
|
|
4
4
|
|
|
@@ -24,7 +24,7 @@ export function bindValue(target: any, propertyKey: string | symbol, expression:
|
|
|
24
24
|
* ## Example
|
|
25
25
|
*
|
|
26
26
|
* ```typescript
|
|
27
|
-
* import {Env} from "@tsed/core";
|
|
27
|
+
* import {Env} from "@tsed/core/domain/Env.js";
|
|
28
28
|
* import {Constant, Value} from "@tsed/di";
|
|
29
29
|
*
|
|
30
30
|
* export class MyClass {
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {Store} from "@tsed/core/types/Store.js";
|
|
2
|
+
import {type AbstractType, Type} from "@tsed/core/types/Type.js";
|
|
3
|
+
import {classOf} from "@tsed/core/utils/classOf.js";
|
|
4
|
+
import {getClassOrSymbol} from "@tsed/core/utils/getClassOrSymbol.js";
|
|
5
|
+
import {isClass} from "@tsed/core/utils/isClass.js";
|
|
6
|
+
import {nameOf} from "@tsed/core/utils/nameOf.js";
|
|
2
7
|
|
|
3
8
|
import {DI_USE_PARAM_OPTIONS} from "../constants/constants.js";
|
|
4
9
|
import type {ProviderOpts} from "../interfaces/ProviderOpts.js";
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {getConstructorArgNames
|
|
1
|
+
import {getConstructorArgNames} from "@tsed/core/utils/getConstructorArgNames.js";
|
|
2
|
+
import {isClass} from "@tsed/core/utils/isClass.js";
|
|
3
|
+
import {isString} from "@tsed/core/utils/isString.js";
|
|
4
|
+
import {nameOf} from "@tsed/core/utils/nameOf.js";
|
|
2
5
|
|
|
3
6
|
import {TokenProvider} from "../interfaces/TokenProvider.js";
|
|
4
7
|
import {colors} from "../utils/colors.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {Type} from "@tsed/core/types/Type.js";
|
|
2
|
+
import {getClassOrSymbol} from "@tsed/core/utils/getClassOrSymbol.js";
|
|
2
3
|
|
|
3
4
|
import {Provider} from "../domain/Provider.js";
|
|
4
5
|
import {ProviderType} from "../domain/ProviderType.js";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {Env
|
|
1
|
+
import {Env} from "@tsed/core/types/Env.js";
|
|
2
|
+
import {getValue} from "@tsed/core/utils/getValue.js";
|
|
3
|
+
import {setValue} from "@tsed/core/utils/setValue.js";
|
|
2
4
|
|
|
3
5
|
import type {DILoggerOptions} from "../interfaces/DILoggerOptions.js";
|
|
4
6
|
import type {ImportTokenProviderOpts} from "../interfaces/ImportTokenProviderOpts.js";
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import {classOf
|
|
1
|
+
import {classOf} from "@tsed/core/utils/classOf.js";
|
|
2
|
+
import {deepClone} from "@tsed/core/utils/deepClone.js";
|
|
3
|
+
import {deepMerge} from "@tsed/core/utils/deepMerge.js";
|
|
4
|
+
import {isArray} from "@tsed/core/utils/isArray.js";
|
|
5
|
+
import {isClass} from "@tsed/core/utils/isClass.js";
|
|
6
|
+
import {isFunction} from "@tsed/core/utils/isFunction.js";
|
|
7
|
+
import {isInheritedFrom} from "@tsed/core/utils/isInheritedFrom.js";
|
|
8
|
+
import {isObject} from "@tsed/core/utils/isObject.js";
|
|
9
|
+
import {isPromise} from "@tsed/core/utils/isPromise.js";
|
|
10
|
+
import {nameOf} from "@tsed/core/utils/nameOf.js";
|
|
2
11
|
import {$alter, $asyncAlter, $asyncEmit, $emit, $off, $on} from "@tsed/hooks";
|
|
3
12
|
|
|
4
13
|
import {DI_INVOKE_OPTIONS, DI_USE_PARAM_OPTIONS} from "../constants/constants.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {type AbstractType,
|
|
1
|
+
import {type AbstractType, type Type} from "@tsed/core/types/Type.js";
|
|
2
|
+
import {methodsOf} from "@tsed/core/utils/methodsOf.js";
|
|
2
3
|
|
|
3
4
|
export function discoverHooks(token: Type | AbstractType<any>) {
|
|
4
5
|
return methodsOf(token).reduce((hooks, {propertyKey}) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {Metadata} from "@tsed/core";
|
|
1
|
+
import {Metadata} from "@tsed/core/types/Metadata.js";
|
|
2
2
|
|
|
3
3
|
export function getConstructorDependencies(target: any, propertyKey?: string | symbol | undefined) {
|
|
4
4
|
return Metadata.getOwn("override:ctor:design:paramtypes", target, propertyKey) || [...Metadata.getParamTypes(target, propertyKey)] || [];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "../registries/ProviderRegistry.js";
|
|
2
2
|
|
|
3
|
-
import {Store
|
|
3
|
+
import {Store} from "@tsed/core/types/Store.js";
|
|
4
|
+
import {type Type} from "@tsed/core/types/Type.js";
|
|
4
5
|
|
|
5
6
|
import {ProviderType} from "../domain/ProviderType.js";
|
|
6
7
|
import {injector} from "../fn/injector.js";
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {Env
|
|
1
|
+
import {Env} from "@tsed/core/types/Env.js";
|
|
2
|
+
import {getValue} from "@tsed/core/utils/getValue.js";
|
|
3
|
+
import {isClass} from "@tsed/core/utils/isClass.js";
|
|
4
|
+
import {isObject} from "@tsed/core/utils/isObject.js";
|
|
2
5
|
import {$log} from "@tsed/logger";
|
|
3
6
|
|
|
4
7
|
import {cleanAllLocalsContainer, detachLocalsContainer, localsContainer} from "../../common/fn/localsContainer.js";
|
package/vite.config.mts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {defineConfig} from "vite";
|
|
2
|
+
import {join} from "node:path";
|
|
3
|
+
import {extname, relative} from "path";
|
|
4
|
+
import {fileURLToPath} from "node:url";
|
|
5
|
+
import {globbySync} from "globby";
|
|
6
|
+
|
|
7
|
+
// https://vitejs.dev/config/
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
plugins: [],
|
|
10
|
+
build: {
|
|
11
|
+
assetsInlineLimit: 0,
|
|
12
|
+
sourcemap: true,
|
|
13
|
+
outDir: "lib/browser",
|
|
14
|
+
lib: {
|
|
15
|
+
entry: join(import.meta.dirname, "src/common/index.ts"),
|
|
16
|
+
formats: ["es"]
|
|
17
|
+
},
|
|
18
|
+
rollupOptions: {
|
|
19
|
+
external: [/node_modules\/(.*)/, /^@tsed\//],
|
|
20
|
+
input: Object.fromEntries(
|
|
21
|
+
globbySync("src/common/**/*.ts", {
|
|
22
|
+
ignore: [
|
|
23
|
+
"**/*.spec.{ts,tsx}",
|
|
24
|
+
"**/*.stories.{ts,tsx}",
|
|
25
|
+
"**/__mocks__/**",
|
|
26
|
+
"**/__mock__/**",
|
|
27
|
+
"**/interfaces/**"
|
|
28
|
+
]
|
|
29
|
+
}).map((file) => [
|
|
30
|
+
// The name of the entry point
|
|
31
|
+
// lib/nested/foo.ts becomes nested/foo
|
|
32
|
+
relative("src", file.slice(0, file.length - extname(file).length)),
|
|
33
|
+
// The absolute path to the entry file
|
|
34
|
+
// lib/nested/foo.ts becomes /project/lib/nested/foo.ts
|
|
35
|
+
fileURLToPath(new URL(file, import.meta.url))
|
|
36
|
+
])
|
|
37
|
+
),
|
|
38
|
+
output: {
|
|
39
|
+
assetFileNames: "assets/[name][extname]",
|
|
40
|
+
chunkFileNames: "chunks/[name].js",
|
|
41
|
+
entryFileNames: "[name].js"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/hooks"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/hooks","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/di"]=t(require("@tsed/core"),require("@tsed/hooks"),require("@tsed/schema")):e["@tsed/di"]=t(e["@tsed/core"],e["@tsed/hooks"],e["@tsed/schema"])}(self,((e,t,r)=>(()=>{"use strict";var s={414:t=>{t.exports=e},171:e=>{e.exports=t},538:e=>{e.exports=r}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return s[e](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};n.r(i),n.d(i,{AutoInjectable:()=>M,CONFIGURATION:()=>T,Configuration:()=>te,Constant:()=>oe,Container:()=>E,Controller:()=>ae,ControllerProvider:()=>_,DIConfiguration:()=>w,DI_INJECTABLE_PROPS:()=>c,DI_INTERCEPTOR_OPTIONS:()=>h,DI_INVOKE_OPTIONS:()=>a,DI_USE_OPTIONS:()=>u,DI_USE_PARAM_OPTIONS:()=>l,GlobalProviderRegistry:()=>v,GlobalProviders:()=>k,Inject:()=>ee,Injectable:()=>ce,InjectablePropertyType:()=>ne,InjectionError:()=>C,InjectorService:()=>N,Intercept:()=>he,Interceptor:()=>de,InvalidPropertyTokenError:()=>q,LOGGER:()=>Se,LazyInject:()=>ye,LocalsContainer:()=>y,Module:()=>Oe,OptionalLazyInject:()=>me,Opts:()=>ke,OverrideProvider:()=>Ee,Provider:()=>O,ProviderScope:()=>d,ProviderType:()=>p,Scope:()=>ve,Service:()=>Pe,UseOpts:()=>be,Value:()=>Ie,bindConstant:()=>se,bindIntercept:()=>le,bindValue:()=>Ce,cleanAllLocalsContainer:()=>Y,colors:()=>b,configuration:()=>L,constant:()=>re,controller:()=>K,createContainer:()=>I,destroyInjector:()=>$,detachLocalsContainer:()=>W,discoverHooks:()=>m,getConfiguration:()=>we,getConstructorDependencies:()=>R,getInterceptorOptions:()=>ue,inject:()=>X,injectMany:()=>Z,injectable:()=>U,injector:()=>D,interceptor:()=>G,invokeOptions:()=>J,lazyInject:()=>pe,localsContainer:()=>Q,mergeMount:()=>Te,optionalLazyInject:()=>fe,providerBuilder:()=>F,refValue:()=>Re,registerProvider:()=>x,setConstructorDependencies:()=>S});const a=Symbol("DI_INVOKE_OPTIONS"),c=Symbol("DI_INJECTABLE_PROPS"),u="DI_USE_OPTIONS",l="DI_USE_PARAM_OPTIONS",h="DI_INTERCEPTOR_OPTIONS";var d,p,f=n(414),g=n(171);class y extends Map{constructor(){super(...arguments),this.hooks=new g.Hooks}async destroy(){await this.hooks.asyncEmit("$onDestroy")}}function m(e){return(0,f.methodsOf)(e).reduce(((e,{propertyKey:t})=>{if(String(t).startsWith("$")){const r=(e,...r)=>e?.[t](...r);return{...e,[t]:r}}return e}),{})}!function(e){e.SINGLETON="singleton",e.REQUEST="request",e.INSTANCE="instance"}(d||(d={})),function(e){e.VALUE="value",e.PROVIDER="provider",e.MODULE="module",e.CONTROLLER="controller",e.INTERCEPTOR="interceptor",e.MIDDLEWARE="middleware"}(p||(p={}));class O{#e;#t;#r;#s;constructor(e,t={}){this.type=p.PROVIDER,this.hooks={},this.token=e,this.useClass=e,Object.assign(this,t),t instanceof O&&(this.#e=t.#e,this.#r=t.#r,this.#s=t.#s)}get token(){return this.#t}set token(e){e&&(this.#t=(0,f.getClassOrSymbol)(e),this.#s=this.#r=f.Store.from(e))}get provide(){return this.token}set provide(e){this.token=e}get useClass(){return this.#e}set useClass(e){(0,f.isClass)(e)&&(this.#e=(0,f.classOf)(e),this.#r=f.Store.from(e),this.hooks=m(this.#e))}get className(){return this.name}get name(){return(0,f.nameOf)(this.token)}get store(){return this.#r}get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}get scope(){return this.isAsync()?d.SINGLETON:this.get("scope",d.SINGLETON)}set scope(e){this.store.set("scope",e)}get configuration(){return this.get("configuration")}set configuration(e){this.store.set("configuration",e)}get children(){return this.store.get("childrenControllers",[])}set children(e){this.store.set("childrenControllers",e)}getArgOpts(e){return this.store.get(`${l}:${e}`)}get(e,t){return this.store.get(e)||this.#s.get(e)||t}isAsync(){return!!this.useAsyncFactory}clone(){return new((0,f.classOf)(this))(this.token,this)}hasChildren(){return!!this.children.length}hasParent(){return!!this.store.get("parentController")}toString(){return["Token",this.name,this.useClass&&(0,f.nameOf)(this.useClass),this.useFactory&&"Factory",this.useValue&&"Value",this.useAsyncFactory&&"AsyncFactory"].filter(Boolean).join(":")}reset(){return this.useValue=void 0,this.useFactory=void 0,this.useAsyncFactory=void 0,this}}class v extends Map{#o=new Map;get(e){return super.get((0,f.getClassOrSymbol)(e))}has(e){return super.has((0,f.getClassOrSymbol)(e))}set(e,t){return super.set((0,f.getClassOrSymbol)(e),t),this}merge(e,t){if(!1===t.global)return k.createProvider(e,t);const r=this.createIfNotExists(e,t);return Object.keys(t).forEach((e=>{r[e]=t[e]})),this.set(e,r),r}delete(e){return super.delete((0,f.getClassOrSymbol)(e))}createRegistry(e,t,r={}){const s=this.getRegistrySettings(e);return r=Object.assign(s,{...r,model:t}),this.#o.set(e,r),this}getRegistrySettings(e){let t=p.PROVIDER;if("string"==typeof e)t=e;else{const r=this.get(e);r&&(t=r.type)}return this.#o.get(t)||{model:O}}createProvider(e,t){const r=t.type||p.PROVIDER,{model:s=O}=this.#o.get(r)||{};return new s(e,t)}createIfNotExists(e,t){if(!this.has(e)){const r=this.createProvider(e,t);this.set(e,r)}return this.get(e)}}const k=new v;class E extends Map{add(e,t={}){const r=k.get(e)?.clone()||new O(e);return Object.assign(r,t),super.set(e,r)}addProvider(e,t={}){return this.add(e,t)}hasProvider(e){return super.has(e)}setProvider(e,t){return super.set(e,t)}getProvider(e){return super.get(e)}getProviders(e){const t=[].concat(e).map(String);return[...this].reduce(((r,[s,o])=>t.includes(String(o.type))||!e?[...r,o]:r),[])}addProviders(e){e.forEach((e=>{this.hasProvider(e.token)||this.setProvider(e.token,e.clone())}))}}const P=e=>e=>(process.env.NO_COLOR,e),b={red:P(),yellow:P(),green:P()};class C extends Error{constructor(e,t){super((0,f.isString)(t)?t:""),this.name="INJECTION_ERROR",this.tokens=[],this.tokens=[e],t&&((0,f.isString)(t)?this.origin={message:t,stack:this.stack}:t.tokens?(this.tokens=this.tokens.concat(t.tokens),this.origin=t.origin):(this.origin=t,this.stack=t.stack));const r=this.origin?"\nOrigin: "+this.origin.message:"",s=this.tokens.map((e=>(0,f.nameOf)(e))).join(" > ");this.message=`Injection failed on ${s}${r}`}static throwInjectorError(e,t,r){throw t&&(0,f.isClass)(e)&&(r.message=function(e,t){let r="";const s=(0,f.getConstructorArgNames)(e).map(((e,s)=>(t.index===s&&(r=e,e=b.red(e)),`${e}: ${(0,f.nameOf)(t.deps[s])}`))).join(", "),o=(0,f.nameOf)(e)+"->constructor("+s+")",n=o.indexOf(r)-5;return"Unable to inject dependency. "+t.message+"\n\n"+o+"\n"+(n>-1?(e=>" ".repeat(e)+b.red("^"+"‾".repeat(r.length-1)))(n):"")}(e,{...t,message:r.message})),new C(e,r)}}function I(e){const t=new E(k.entries());return e&&t.delete(e),t}function R(e,t){return f.Metadata.getOwn("override:ctor:design:paramtypes",e,t)||[...f.Metadata.getParamTypes(e,t)]||[]}function S(e,t){f.Metadata.set("override:ctor:design:paramtypes",t,e)}const T=Symbol.for("CONFIGURATION");class w{constructor(e={}){this.default=new Map,this.map=new Map,Object.entries({imports:[],routes:[],logger:{},...e}).forEach((([e,t])=>{this.default.set(e,t)}))}get version(){return this.get("version")}set version(e){this.map.set("version",e)}get rootDir(){return this.get("rootDir")}set rootDir(e){this.map.set("rootDir",e)}get env(){return this.map.get("env")}set env(e){this.map.set("env",e)}get imports(){return this.get("imports")}set imports(e){this.map.set("imports",e)}get routes(){return this.get("routes")}set routes(e){this.map.set("routes",e)}get logger(){return this.get("logger")}set logger(e){const t={...this.logger,...e};this.map.set("logger",t)}get debug(){return"debug"===this.logger.level}set debug(e){this.logger={...this.logger,level:e?"debug":"info"}}forEach(e,t){return new Set([...Array.from(this.default.keys()),...Array.from(this.map.keys())]).forEach((t=>{e(this.getRaw(t),t,this.map)}),t)}set(e,t){return"string"==typeof e?Reflect.has(this,e)?this[e]=t:this.setRaw(e,t):Object.entries(e).forEach((([e,t])=>{this.set(e,t)})),this}setRaw(e,t){return(0,f.setValue)(this.map,e,t),this}get(e,t){return this.getRaw(e,t)}getRaw(e,t){const r=(0,f.getValue)(this.map,e);return void 0!==r?r:(0,f.getValue)(this.default,e,t)}}const A=["mount","imports"];class N extends E{#n;#i;constructor(){super(),this.logger=console,this.resolvedConfiguration=!1,this.#n=new y,this.#i=!1,this.#n.set(N,this),this.#n.set(w,new w)}get settings(){return this.#n.get(w)}set settings(e){this.#n.set(w,e)}isLoaded(){return this.#i}toArray(){return[...this.#n.values()]}get(e,t){return this.has(e)?this.#n.get(e):this.resolve(e,t)}getMany(e,t){return this.getProviders(e).map((e=>this.resolve(e.token,t)))}has(e){return void 0!==this.#n.get(e)}alias(e,t){return this.#n.set(t,this.#n.get(e)),this}resolve(e,t={}){let r=t.locals?t.locals.get(e):void 0;if(void 0!==r)return r;if(e===l)return t.useOpts;if(r=t.rebuild?void 0:this.#n.get(e),null!=r)return r;const s=this.ensureProvider(e);if(!s||t.rebuild)return r=this.invokeToken(e,t),s?this.setToCache(s,r):r;switch(r=this.invokeToken(e,t),s.scope){case d.SINGLETON:return t.rebuild||this.registerHooks(s,t),this.setToCache(s,r);case d.REQUEST:return t.locals&&(t.locals.set(s.token,r),this.registerHooks(s,t)),r}return r}invoke(e,t={}){return this.resolve(e,t)}async loadAsync(){for(const[,e]of this)!this.has(e.token)&&e.isAsync()&&await this.resolve(e.token)}loadSync(){for(const[,e]of this)this.has(e.token)||e.scope!==d.SINGLETON||this.resolve(e.token)}async load(e=I()){this.#i=!0,await(0,g.$asyncEmit)("$beforeInit"),await this.bootstrap(e),await this.loadAsync(),this.loadSync(),await(0,g.$asyncEmit)("$onInit")}async resolveConfiguration(){if(this.resolvedConfiguration)return;const e=new Map;super.forEach((t=>{t.configuration&&"server:module"!==t.type&&Object.entries(t.configuration).forEach((([t,r])=>{A.includes(t)||(r=e.has(t)?(0,f.deepMerge)(e.get(t),r):(0,f.deepClone)(r),e.set(t,r))}))})),e.forEach(((e,t)=>{this.settings.set(t,(0,f.deepMerge)(e,this.settings.get(t)))})),await(0,g.$asyncEmit)("$afterResolveConfiguration",this.settings),this.resolvedConfiguration=!0}emit(e,...t){return(0,g.$asyncEmit)(e,t)}alter(e,t,...r){return(0,g.$alter)(e,t,r)}alterAsync(e,t,...r){return(0,g.$asyncAlter)(e,t,r)}async destroy(){await(0,g.$asyncEmit)("$onDestroy"),this.#n.forEach(((e,t)=>{(0,g.$off)(t)}))}async bootstrap(e=I()){return this.addProviders(e),await this.resolveConfiguration(),this.resolveImportsProviders(),this}ensureProvider(e,t=!1){return this.hasProvider(e)||!k.has(e)&&!t||this.addProvider(e),this.getProvider(e)}invokeToken(e,t={}){const r=this.mapInvokeOptions(e,t);if(!r)return;const{token:s,deps:o,construct:n,imports:i,provider:c}=r;let u;(0,g.$emit)("$beforeInvoke",s,[r]),(0,g.$emit)(`$beforeInvoke:${String(c.type)}`,[r]);let l=!1;try{const e=e=>(r,s)=>(l={token:r,index:s,deps:o},(0,f.isArray)(r)?this.getMany(r[0],t):(0,f.isInheritedFrom)(r,O,1)?c:this.resolve(r,{parent:e,locals:t.locals,useOpts:c?.getArgOpts(s)||t.useOpts}));i.forEach(e());const r=o.map(e(s));l=!1,u=n(r)}catch(e){C.throwInjectorError(s,l,e)}if(void 0===u)throw new C(s,`Unable to create new instance from undefined value. Check your provider declaration for ${(0,f.nameOf)(s)}`);return u&&(0,f.isClass)((0,f.classOf)(u))&&Reflect.defineProperty(u,a,{get:()=>({rebuild:t.rebuild,locals:t.locals})}),(0,g.$emit)("$afterInvoke",s,[u,r]),u}resolveImportsProviders(){this.settings.imports=this.settings.imports?.filter((e=>(0,f.isObject)(e)&&"token"in e&&e.token!==N)).map((e=>{if((0,f.isObject)(e)&&"token"in e){const{token:t,...r}=e,s=this.ensureProvider(t,!0);if(s){if(s.useValue=void 0,s.useAsyncFactory=void 0,s.useFactory=void 0,"useClass"in r)return void(s.useClass=r.useClass);if("useFactory"in r)return void(s.useFactory=r.useFactory);if("useAsyncFactory"in r)return void(s.useAsyncFactory=r.useAsyncFactory);if("use"in r)return void(s.useValue=r.use)}}return e})).filter(Boolean)}mapInvokeOptions(e,t){const r=t.locals||new y;t.locals=r;let s,o,n=t.imports,i=t.deps;if(!e||e===Object)throw new Error("Given token is undefined. Could mean a circular dependency problem. Try to use @Inject(() => Token) to solve it.");if(o=this.hasProvider(e)?this.getProvider(e):new O(e),i=i||o.deps,n=n||o.imports,void 0!==o.useValue)s=()=>(0,f.isFunction)(o.useValue)?o.useValue():o.useValue;else if(o.useFactory)s=e=>o.useFactory(...e);else if(o.useAsyncFactory)s=async e=>(e=await Promise.all(e),o.useAsyncFactory(...e));else{if(!o.useClass)return!1;i=i||R(o.useClass),s=e=>new o.useClass(...e)}return{token:e,deps:i||[],imports:n||[],construct:s,provider:o,locals:r}}registerHooks(e,t){if(e.hooks){if(e.scope===d.REQUEST){if(t.locals&&e.hooks?.$onDestroy){const{locals:r}=t;t.locals.hooks.on("$onDestroy",((...t)=>e.hooks?.$onDestroy?.(r.get(e.token),...t)))}return}Object.entries(e.hooks).forEach((([t,r])=>{(0,g.$on)(t,e.token,((...t)=>r(this.#n.get(e.token),...t)))}))}}setToCache(e,t){const r=t=>{this.#n.set(e.token,t),e?.alias&&this.alias(e.token,e.alias)};return!("isAsync"in e)||e.isAsync()||(0,f.isPromise)(t)?(r(t),t=t.then((e=>(r(e),e)))):(r(t),t)}}let j=new N;function D(){return j}async function $(){await j.destroy(),j=new N}function M(){return e=>class extends e{constructor(...t){super(...function(e,t){const r=D(),s=new y,o=R(e),n=[],i=Math.max(o.length,t.length);for(let a=0;a<i;a++)if(void 0!==t[a])n.push(t[a]);else{const t=o[a],i=(0,f.isArray)(t)?r.getMany(t[0],{locals:s,parent:e}):r.invoke(t,{locals:s,parent:e});n.push(i)}return n}(e,t))}}}function L(e,t){if(e){const r=f.Store.from(e);return t&&r.set("configuration",t),r.get("configuration",t)}return D().settings}class _ extends O{constructor(e,t={}){super(e,t),this.type=p.CONTROLLER}get middlewares(){return Object.assign({use:[],useAfter:[],useBefore:[]},this.store.get("middlewares",{}))}set middlewares(e){const t=this.middlewares;Object.keys(e).forEach((r=>{((e,t,r)=>{t[e]=t[e].concat(r[e])})(r,t,e)})),this.store.set("middlewares",t)}}function x({token:e,provide:t,...r}){return U(e||t,{...r,token:e||t}).inspect()}function F(e,t={}){return(r,s={})=>{const o={global:!D().isLoaded(),...s,...t,token:r},n=k.merge(r,o);return o.global||D().setProvider(r,n),e.reduce(((e,t)=>({...e,[t]:function(e){return n[t]=e,this}})),{factory(e){return n.reset(),n.useFactory=e,this},asyncFactory(e){return n.reset(),n.useAsyncFactory=e,this},value(e){return n.reset(),n.useValue=e,n.type=p.VALUE,this},class(e){return n.reset(),n.useClass=e,this},store:()=>n.store,inspect:()=>n,token:()=>n.token})}}k.createRegistry(p.CONTROLLER,_);const V=["type","scope","path","alias","hooks","deps","imports","configuration","priority"],U=F(V),G=F(V,{type:p.INTERCEPTOR}),K=F([...V,"middlewares"],{type:p.CONTROLLER});class q extends Error{constructor(e,t){super(`Object isn't a valid token. Please check the token set on ${(0,f.nameOf)((0,f.classOf)(e))}.${t}.\n- Check that it is not a circular reference.\n- Check that the token (class or symbol) exists`),this.name="INVALID_TOKEN_ERROR"}}let H,z={};const B=[];function Q({providers:e,rebuild:t}={}){return H&&!e||(H=new y,e&&(e.forEach((e=>{H.set(e.token,e.use)})),H.set(N,D())),t&&(z.rebuild=t)),H}function J(){return{...z}}function W(){H&&B.push(H),H=void 0,z={}}function Y(){W(),B.map((e=>e.clear()))}function X(e,t){return D().resolve(e,{...t,...J(),locals:t?.locals||Q()})}function Z(e,t){return D().getMany(e,{...t,locals:t?.locals||Q()})}function ee(e,t={}){return t="function"==typeof t?{transform:t}:t,(r,s,o)=>{switch((0,f.decoratorTypeOf)([r,s,o])){case f.DecoratorTypes.PARAM_CTOR:e&&function(e,{target:t,propertyKey:r,parameterIndex:s}){const o=R(t,r),n=o[s];o[s]=n===Array?[e]:e,f.Metadata.setParamTypes(t,r,o),S(t,o)}(e,{target:r,propertyKey:s,parameterIndex:o});break;case f.DecoratorTypes.PROP:!function(e,t,{token:r,transform:s=e=>e,useOpts:o}){const n=Symbol();e[c]||Reflect.defineProperty(e,c,{value:new Set,enumerable:!1,configurable:!1}),e[c].add(t),(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){const i=function(e,t,r){const s=e||f.Metadata.getType(t,r);if(s===Object)throw new q(t,String(r));return s}(r,e,t),c=f.Metadata.getType(e,t),l={rebuild:!!this[a]?.rebuild,locals:this[a]?.locals,useOpts:o||f.Store.from(e,t).get(u)};return void 0===this[n]&&(this[n]=c===Array?Z(r,l):X(i,l)),[].concat(this[n]).forEach(((e,t)=>{(0,f.isPromise)(this[n])&&e.then((e=>{this[n][t]=e,c!==Array&&(this[n]=e)}))})),s(this[n],{self:this,target:e,propertyKey:t})}})}(r,s,{...t,token:e})}}}function te(e={}){return(...t)=>{switch((0,f.decoratorTypeOf)(t)){case f.DecoratorTypes.CLASS:L(t[0],e);break;default:case f.DecoratorTypes.PARAM_CTOR:return ee(w)(t[0],t[1],t[2])}}}function re(e,t){return D().settings.get(e,t)}function se(e,t,r,s){const o=Symbol();(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){if(void 0!==this[o])return this[o];const e=re(r,s);return this[o]=Object.freeze((0,f.deepClone)(e)),this[o]},set(e){void 0===(re(r,s)||this[o])&&void 0!==e&&(this[o]=e)},enumerable:!0,configurable:!0})}function oe(e,t){return(r,s)=>se(r,s,e,t)}U(te).factory((()=>D().settings));var ne,ie=n(538);function ae(e){const{children:t=[],path:r,...s}=function(e){return"string"==typeof e||e instanceof RegExp||(0,f.isArrayOrArrayClass)(e)?{path:e}:e}(e);return(0,f.useDecorators)((e=>{K(e,s)}),r&&(0,ie.Path)(r),(0,ie.Children)(...t))}function ce(e={}){return t=>{const r={...e,...e.token?{useClass:t}:{token:t}};U(r.token,r)}}function ue(e,t){return f.Store.fromMethod(e,t).get(h)}function le(e,t,r,s){const o=(0,f.classOf)(e),n=Reflect.getOwnPropertyDescriptor(o.prototype,t),i=n.value,c=Symbol();return f.Store.fromMethod(o,t).set(h,s),n.value=function(...e){const n=t=>{if(!t)return i.apply(this,e);throw t},u={target:o,propertyKey:t,args:e,options:s,next:n},l={rebuild:!!this[a]?.rebuild,locals:this[a]?.locals};return this[c]=this[c]||X(r,l),this[c].intercept({...u,options:s},n)},Reflect.deleteProperty(o.prototype,t),Reflect.defineProperty(o.prototype,t,n),n}function he(e,t){return(...r)=>{const[s,o]=r;switch((0,f.decoratorTypeOf)(r)){case f.DecoratorTypes.CLASS:(0,f.decorateMethodsOf)(s,he(e,t));break;case f.DecoratorTypes.METHOD:return le(s,o,e,t)}}}function de(){return ce({type:p.INTERCEPTOR})}async function pe(e){const{default:t}=await e();if(!D().has(t)){const e=await X(t);"$onInit"in e&&(0,f.isFunction)(e.$onInit)&&await e.$onInit()}return D().get(t)}async function fe(e){try{return await pe(e)}catch(e){return}}function ge(e,t=!1){function r(e,r){return async()=>{try{const{[e]:t}=await r();return{default:t}}catch(e){if(!t)throw e;return}}}return(0,f.isFunction)(e[0])?r("default",e[0]):r(e[0],e[1])}function ye(...e){let t=ge(e);return(e,r)=>{(0,f.catchError)((()=>Reflect.deleteProperty(e,r))),Reflect.defineProperty(e,r,{get:async()=>pe(t)})}}function me(...e){const t=ge(e,!0);return(e,r)=>{(0,f.catchError)((()=>Reflect.deleteProperty(e,r))),Reflect.defineProperty(e,r,{get:async()=>fe(t)})}}function Oe(e={}){const{scopes:t,imports:r,deps:s,scope:o,...n}=e;return(0,f.useDecorators)(te(n),ce({type:p.MODULE,scope:d.SINGLETON,imports:r,deps:s,injectable:!1}))}function ve(e=d.REQUEST){return(0,f.StoreSet)("scope",e)}function ke(e,t,r){ve(d.INSTANCE)((0,f.classOf)(e)),ee(l)(e,t,r)}function Ee(e){return t=>{k.get(e).useClass=t}}function Pe(){return ce()}function be(e){return(t,r,s)=>{switch((0,f.decoratorTypeOf)([t,r,s])){case f.DecoratorTypes.PARAM_CTOR:f.Store.from(t).merge(`${l}:${s}`,e);break;case f.DecoratorTypes.PROP:f.Store.from(t,r).set(u,e);break;default:throw new f.UnsupportedDecoratorType(be,[t,r,s])}}}function Ce(e,t,r,s){const o={get:()=>D().settings.get(r,s),set(e){D().settings.set(r,e)},enumerable:!0,configurable:!0};(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),(0,f.catchError)((()=>Reflect.defineProperty(e,t,o)))}function Ie(e,t){return(r,s)=>Ce(r,s,e,t)}function Re(e,t){return Object.freeze({get value(){return D().settings.get(e,t)},set value(t){D().settings.set(e,t)}})}!function(e){e.METHOD="method",e.PROPERTY="property",e.CONSTANT="constant",e.VALUE="value",e.INTERCEPTOR="interceptor"}(ne||(ne={}));const Se=Symbol.for("LOGGER");function Te(e={},t={}){return Object.entries(t).reduce(((e,[t,r])=>({...e,[t]:(e[t]||[]).concat(r)})),e)}function we(e,t={}){const r=f.Store.from(e).get("configuration")||{};return{...r,...t,mount:Te(r.mount,t.mount)}}return U(Se).factory((()=>D().logger)),i})()));
|
|
2
|
-
//# sourceMappingURL=di.umd.min.js.map
|