@tsed/di 8.19.5 → 8.20.0
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/esm/common/decorators/controller.js +1 -1
- package/lib/esm/common/decorators/overrideProvider.js +10 -2
- package/lib/esm/common/domain/Container.js +1 -2
- package/lib/esm/common/domain/ControllerProvider.js +2 -30
- package/lib/esm/common/domain/Provider.js +80 -7
- package/lib/esm/common/domain/ProviderBuilder.js +213 -0
- package/lib/esm/common/extends/intercept.js +7 -0
- package/lib/esm/common/fn/injectable.js +14 -5
- package/lib/esm/common/index.js +2 -2
- package/lib/esm/common/registries/GlobalProviders.js +4 -98
- package/lib/esm/common/services/InjectorService.js +2 -3
- package/lib/esm/common/utils/createContainer.js +2 -2
- package/lib/types/common/decorators/controller.d.ts +1 -1
- package/lib/types/common/domain/ControllerProvider.d.ts +2 -27
- package/lib/types/common/domain/Provider.d.ts +92 -7
- package/lib/types/common/domain/ProviderBuilder.d.ts +252 -0
- package/lib/types/common/extends/intercept.d.ts +10 -0
- package/lib/types/common/fn/injectable.d.ts +27 -6
- package/lib/types/common/index.d.ts +2 -2
- package/lib/types/common/registries/GlobalProviders.d.ts +4 -49
- package/package.json +5 -5
- package/lib/esm/common/registries/ProviderRegistry.js +0 -15
- package/lib/esm/common/utils/providerBuilder.js +0 -62
- package/lib/types/common/registries/ProviderRegistry.d.ts +0 -16
- package/lib/types/common/utils/providerBuilder.d.ts +0 -21
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import "../registries/ProviderRegistry.js";
|
|
2
|
-
import { ProviderType } from "../domain/ProviderType.js";
|
|
3
|
-
import { injector } from "../fn/injector.js";
|
|
4
|
-
import { GlobalProviders } from "../registries/GlobalProviders.js";
|
|
5
|
-
export function providerBuilder(props, baseOpts = {}) {
|
|
6
|
-
return (token, options = {}) => {
|
|
7
|
-
const merged = {
|
|
8
|
-
global: !injector().isLoaded(),
|
|
9
|
-
...options,
|
|
10
|
-
...baseOpts,
|
|
11
|
-
token
|
|
12
|
-
};
|
|
13
|
-
const provider = GlobalProviders.merge(token, merged);
|
|
14
|
-
if (!merged.global) {
|
|
15
|
-
injector().setProvider(token, provider);
|
|
16
|
-
}
|
|
17
|
-
return props.reduce((acc, prop) => {
|
|
18
|
-
return {
|
|
19
|
-
...acc,
|
|
20
|
-
[prop]: function (value) {
|
|
21
|
-
provider[prop] = value;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}, {
|
|
26
|
-
factory(factory) {
|
|
27
|
-
provider.reset();
|
|
28
|
-
provider.useFactory = factory;
|
|
29
|
-
return this;
|
|
30
|
-
},
|
|
31
|
-
asyncFactory(asyncFactory) {
|
|
32
|
-
provider.reset();
|
|
33
|
-
provider.useAsyncFactory = asyncFactory;
|
|
34
|
-
return this;
|
|
35
|
-
},
|
|
36
|
-
value(value) {
|
|
37
|
-
provider.reset();
|
|
38
|
-
provider.useValue = value;
|
|
39
|
-
provider.type = ProviderType.VALUE;
|
|
40
|
-
return this;
|
|
41
|
-
},
|
|
42
|
-
class(k) {
|
|
43
|
-
provider.reset();
|
|
44
|
-
provider.useClass = k;
|
|
45
|
-
return this;
|
|
46
|
-
},
|
|
47
|
-
store() {
|
|
48
|
-
return provider.store;
|
|
49
|
-
},
|
|
50
|
-
inspect() {
|
|
51
|
-
return provider;
|
|
52
|
-
},
|
|
53
|
-
token() {
|
|
54
|
-
return provider.token;
|
|
55
|
-
},
|
|
56
|
-
set(key, value) {
|
|
57
|
-
this.store().set(key, value);
|
|
58
|
-
return this;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
2
|
-
import type { TokenProvider } from "../interfaces/TokenProvider.js";
|
|
3
|
-
type Opts<Type = any> = Partial<ProviderOpts<Type>> & ({
|
|
4
|
-
token: TokenProvider<Type>;
|
|
5
|
-
} | {
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated use token prop instead
|
|
8
|
-
*/
|
|
9
|
-
provide: TokenProvider<Type>;
|
|
10
|
-
});
|
|
11
|
-
/**
|
|
12
|
-
* Register a provider configuration.
|
|
13
|
-
* @deprecated Since v8. Use injectable() function instead.
|
|
14
|
-
*/
|
|
15
|
-
export declare function registerProvider<Type = any>({ token, provide, ...opts }: Opts<Type>): import("../index.js").Provider<any>;
|
|
16
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import "../registries/ProviderRegistry.js";
|
|
2
|
-
import { Store } from "@tsed/core/types/Store.js";
|
|
3
|
-
import type { Type } from "@tsed/core/types/Type.js";
|
|
4
|
-
import type { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
5
|
-
import type { FactoryTokenProvider, TokenProvider } from "../interfaces/TokenProvider.js";
|
|
6
|
-
type BaseMethodsProvider<TypeOf, BaseProvider, T extends object> = {
|
|
7
|
-
[K in keyof T as T[K] extends (...args: any[]) => any ? never : K]: (value: T[K]) => ProviderBuilder<TypeOf, BaseProvider, T>;
|
|
8
|
-
};
|
|
9
|
-
type ProviderBuilder<TypeOf, BaseProvider, T extends object> = BaseMethodsProvider<TypeOf, BaseProvider, T> & {
|
|
10
|
-
inspect(): BaseProvider;
|
|
11
|
-
store(): Store;
|
|
12
|
-
token(): TypeOf;
|
|
13
|
-
factory<FactoryReturn>(f: (...args: unknown[]) => FactoryReturn): ProviderBuilder<FactoryTokenProvider<FactoryReturn>, BaseProvider, T>;
|
|
14
|
-
asyncFactory<FactoryReturn>(f: (...args: unknown[]) => Promise<FactoryReturn>): ProviderBuilder<FactoryTokenProvider<FactoryReturn>, BaseProvider, T>;
|
|
15
|
-
value<Value>(v: Value): ProviderBuilder<FactoryTokenProvider<Value>, BaseProvider, T>;
|
|
16
|
-
class<TokenKlass>(c: Type<TokenKlass>): ProviderBuilder<TokenKlass, BaseProvider, T>;
|
|
17
|
-
set(key: string, value: any): ProviderBuilder<TypeOf, BaseProvider, T>;
|
|
18
|
-
};
|
|
19
|
-
export type ProviderBuilderFn<Provider, Picked extends keyof Provider> = <TypeOf extends TokenProvider>(token: TypeOf, options?: Partial<ProviderOpts<Type>>) => ProviderBuilder<TypeOf, Provider, Pick<Provider, Picked>>;
|
|
20
|
-
export declare function providerBuilder<Provider, Picked extends keyof Provider>(props: string[], baseOpts?: Partial<ProviderOpts<Provider>>): ProviderBuilderFn<Provider, Picked>;
|
|
21
|
-
export {};
|