ts-ioc-container 71.0.0 → 72.1.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/README.md +203 -65
- package/cjm/container/Container.js +5 -5
- package/cjm/hooks/HookContext.js +3 -2
- package/cjm/hooks/injectProp.js +2 -4
- package/cjm/index.js +7 -4
- package/cjm/injector/IInjector.js +2 -2
- package/cjm/injector/MetadataInjector.js +14 -9
- package/cjm/injector/ProxyInjector.js +1 -1
- package/cjm/injector/SimpleInjector.js +2 -2
- package/cjm/metadata/class.js +3 -1
- package/cjm/metadata/method.js +3 -1
- package/cjm/metadata/parameter.js +7 -1
- package/cjm/provider/Provider.js +9 -8
- package/cjm/registration/IRegistration.js +2 -2
- package/cjm/select.js +2 -2
- package/cjm/token/ClassToken.js +3 -3
- package/cjm/token/FunctionToken.js +5 -4
- package/cjm/token/GroupAliasToken.js +3 -3
- package/cjm/token/InjectionToken.js +1 -1
- package/cjm/token/SingleAliasToken.js +3 -3
- package/cjm/token/SingleToken.js +3 -3
- package/cjm/token/toToken.js +1 -8
- package/esm/container/Container.js +5 -5
- package/esm/hooks/HookContext.js +3 -2
- package/esm/hooks/injectProp.js +1 -4
- package/esm/index.js +5 -5
- package/esm/injector/IInjector.js +2 -2
- package/esm/injector/MetadataInjector.js +13 -9
- package/esm/injector/ProxyInjector.js +1 -1
- package/esm/injector/SimpleInjector.js +2 -2
- package/esm/metadata/class.js +1 -0
- package/esm/metadata/method.js +1 -0
- package/esm/metadata/parameter.js +5 -0
- package/esm/provider/Provider.js +9 -8
- package/esm/registration/IRegistration.js +2 -2
- package/esm/select.js +2 -2
- package/esm/token/ClassToken.js +3 -3
- package/esm/token/FunctionToken.js +5 -4
- package/esm/token/GroupAliasToken.js +3 -3
- package/esm/token/InjectionToken.js +1 -1
- package/esm/token/SingleAliasToken.js +3 -3
- package/esm/token/SingleToken.js +3 -3
- package/esm/token/toToken.js +0 -6
- package/package.json +1 -1
- package/typings/container/IContainer.d.ts +2 -2
- package/typings/hooks/HookContext.d.ts +3 -3
- package/typings/hooks/hook.d.ts +1 -2
- package/typings/hooks/injectProp.d.ts +2 -14
- package/typings/index.d.ts +7 -7
- package/typings/injector/IInjector.d.ts +7 -4
- package/typings/injector/MetadataInjector.d.ts +6 -16
- package/typings/injector/ProxyInjector.d.ts +1 -2
- package/typings/injector/SimpleInjector.d.ts +1 -2
- package/typings/metadata/class.d.ts +1 -0
- package/typings/metadata/method.d.ts +1 -0
- package/typings/metadata/parameter.d.ts +1 -0
- package/typings/provider/IProvider.d.ts +5 -4
- package/typings/provider/Provider.d.ts +2 -2
- package/typings/select.d.ts +3 -3
- package/typings/token/ClassToken.d.ts +2 -2
- package/typings/token/FunctionToken.d.ts +2 -2
- package/typings/token/GroupAliasToken.d.ts +2 -2
- package/typings/token/InjectionToken.d.ts +2 -2
- package/typings/token/SingleAliasToken.d.ts +3 -3
- package/typings/token/SingleToken.d.ts +2 -2
- package/typings/token/toToken.d.ts +0 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IContainer } from '../container/IContainer.js';
|
|
2
2
|
import { InjectionToken } from './InjectionToken.js';
|
|
3
3
|
import { InjectFn } from '../hooks/hook.js';
|
|
4
|
-
import { ArgsFn,
|
|
4
|
+
import { ArgsFn, ResolveOptions } from '../provider/IProvider.js';
|
|
5
5
|
import { Serializable } from '../utils/basic.js';
|
|
6
6
|
export declare class FunctionToken<T = any> extends InjectionToken<T> implements Serializable {
|
|
7
7
|
private readonly fn;
|
|
@@ -12,7 +12,7 @@ export declare class FunctionToken<T = any> extends InjectionToken<T> implements
|
|
|
12
12
|
isLazy?: boolean;
|
|
13
13
|
tags?: string[];
|
|
14
14
|
});
|
|
15
|
-
resolve(s: IContainer, { args, lazy }?:
|
|
15
|
+
resolve(s: IContainer, { args, lazy }?: ResolveOptions): T;
|
|
16
16
|
args(...newArgs: unknown[]): InjectionToken<T>;
|
|
17
17
|
argsFn(fn: (s: IContainer) => unknown[]): InjectionToken<T>;
|
|
18
18
|
lazy(): InjectionToken<T>;
|
|
@@ -2,7 +2,7 @@ import { DependencyKey, IContainer } from '../container/IContainer.js';
|
|
|
2
2
|
import { InjectionToken } from './InjectionToken.js';
|
|
3
3
|
import { IRegistration } from '../registration/IRegistration.js';
|
|
4
4
|
import { BindToken } from './BindToken.js';
|
|
5
|
-
import { ArgsFn,
|
|
5
|
+
import { ArgsFn, ResolveOptions } from '../provider/IProvider.js';
|
|
6
6
|
import { Serializable } from '../utils/basic.js';
|
|
7
7
|
export declare class GroupAliasToken<T = any> extends InjectionToken<T[]> implements BindToken<T>, Serializable {
|
|
8
8
|
readonly token: DependencyKey;
|
|
@@ -14,7 +14,7 @@ export declare class GroupAliasToken<T = any> extends InjectionToken<T[]> implem
|
|
|
14
14
|
tags?: string[];
|
|
15
15
|
});
|
|
16
16
|
select<R>(fn: (target: T[]) => R[]): (s: IContainer) => R[];
|
|
17
|
-
resolve(s: IContainer, { args, lazy }?:
|
|
17
|
+
resolve(s: IContainer, { args, lazy }?: ResolveOptions): T[];
|
|
18
18
|
bindTo(r: IRegistration<T>): void;
|
|
19
19
|
args(...newArgs: unknown[]): GroupAliasToken<T>;
|
|
20
20
|
argsFn(fn: (s: IContainer) => unknown[]): GroupAliasToken<T>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type IContainer, type Tag } from '../container/IContainer.js';
|
|
2
|
-
import { ArgsFn,
|
|
2
|
+
import { ArgsFn, ResolveOptions } from '../provider/IProvider.js';
|
|
3
3
|
export declare const forwardArgs: ArgsFn;
|
|
4
4
|
export declare abstract class InjectionToken<T = any> {
|
|
5
5
|
private readonly tags;
|
|
6
6
|
protected constructor(tags?: Tag[]);
|
|
7
|
-
abstract resolve(s: IContainer, options?:
|
|
7
|
+
abstract resolve(s: IContainer, options?: ResolveOptions): T;
|
|
8
8
|
abstract args(...deps: unknown[]): InjectionToken<T>;
|
|
9
9
|
abstract argsFn(getArgsFn: (s: IContainer) => unknown[]): InjectionToken<T>;
|
|
10
10
|
abstract lazy(): InjectionToken<T>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { DependencyKey, IContainer
|
|
1
|
+
import { DependencyKey, IContainer } from '../container/IContainer.js';
|
|
2
2
|
import { InjectionToken } from './InjectionToken.js';
|
|
3
3
|
import { IRegistration } from '../registration/IRegistration.js';
|
|
4
4
|
import { BindToken } from './BindToken.js';
|
|
5
|
-
import { ArgsFn } from '../provider/IProvider.js';
|
|
5
|
+
import { ArgsFn, ResolveOptions } from '../provider/IProvider.js';
|
|
6
6
|
import { Serializable } from '../utils/basic.js';
|
|
7
7
|
export declare class SingleAliasToken<T = any> extends InjectionToken<T> implements BindToken<T>, Serializable {
|
|
8
8
|
readonly token: DependencyKey;
|
|
@@ -14,7 +14,7 @@ export declare class SingleAliasToken<T = any> extends InjectionToken<T> impleme
|
|
|
14
14
|
tags?: string[];
|
|
15
15
|
});
|
|
16
16
|
select<R>(fn: (target: T) => R): (s: IContainer) => R;
|
|
17
|
-
resolve(s: IContainer, { args, lazy }?:
|
|
17
|
+
resolve(s: IContainer, { args, lazy }?: ResolveOptions): T;
|
|
18
18
|
bindTo(r: IRegistration<T>): void;
|
|
19
19
|
args(...newArgs: unknown[]): SingleAliasToken<T>;
|
|
20
20
|
argsFn(fn: (s: IContainer) => unknown[]): SingleAliasToken<T>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DependencyKey, IContainer } from '../container/IContainer.js';
|
|
2
2
|
import { InjectionToken } from './InjectionToken.js';
|
|
3
3
|
import { IRegistration } from '../registration/IRegistration.js';
|
|
4
|
-
import { ArgsFn,
|
|
4
|
+
import { ArgsFn, ResolveOptions } from '../provider/IProvider.js';
|
|
5
5
|
import { Serializable } from '../utils/basic.js';
|
|
6
6
|
export declare class SingleToken<T = any> extends InjectionToken<T> implements Serializable {
|
|
7
7
|
token: DependencyKey;
|
|
@@ -13,7 +13,7 @@ export declare class SingleToken<T = any> extends InjectionToken<T> implements S
|
|
|
13
13
|
tags?: string[];
|
|
14
14
|
});
|
|
15
15
|
select<R>(fn: (target: T) => R): (s: IContainer) => R;
|
|
16
|
-
resolve(s: IContainer, { args, lazy }?:
|
|
16
|
+
resolve(s: IContainer, { args, lazy }?: ResolveOptions): T;
|
|
17
17
|
bindTo(r: IRegistration<T>): void;
|
|
18
18
|
args(...newArgs: unknown[]): SingleToken<T>;
|
|
19
19
|
argsFn(fn: (s: IContainer) => unknown[]): SingleToken<T>;
|
|
@@ -2,8 +2,6 @@ import { DependencyKey } from '../container/IContainer.js';
|
|
|
2
2
|
import { InjectionToken } from './InjectionToken.js';
|
|
3
3
|
import { InjectFn } from '../hooks/hook.js';
|
|
4
4
|
import { type constructor } from '../utils/basic.js';
|
|
5
|
-
import { type MapFn } from '../utils/fp.js';
|
|
6
5
|
export type Injectable<T = any> = InjectFn<T> | InjectionToken<T> | DependencyKey | constructor<T>;
|
|
7
6
|
export declare const toToken: <T = any>(token: Injectable<T>) => InjectionToken<T>;
|
|
8
7
|
export declare const argToToken: <T = unknown>(v: T) => InjectionToken<T>;
|
|
9
|
-
export declare const toMappedToken: <T = any, R = T>(token: Injectable<T>, mappers: MapFn<any, any>[]) => InjectionToken<R>;
|