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.
Files changed (66) hide show
  1. package/README.md +203 -65
  2. package/cjm/container/Container.js +5 -5
  3. package/cjm/hooks/HookContext.js +3 -2
  4. package/cjm/hooks/injectProp.js +2 -4
  5. package/cjm/index.js +7 -4
  6. package/cjm/injector/IInjector.js +2 -2
  7. package/cjm/injector/MetadataInjector.js +14 -9
  8. package/cjm/injector/ProxyInjector.js +1 -1
  9. package/cjm/injector/SimpleInjector.js +2 -2
  10. package/cjm/metadata/class.js +3 -1
  11. package/cjm/metadata/method.js +3 -1
  12. package/cjm/metadata/parameter.js +7 -1
  13. package/cjm/provider/Provider.js +9 -8
  14. package/cjm/registration/IRegistration.js +2 -2
  15. package/cjm/select.js +2 -2
  16. package/cjm/token/ClassToken.js +3 -3
  17. package/cjm/token/FunctionToken.js +5 -4
  18. package/cjm/token/GroupAliasToken.js +3 -3
  19. package/cjm/token/InjectionToken.js +1 -1
  20. package/cjm/token/SingleAliasToken.js +3 -3
  21. package/cjm/token/SingleToken.js +3 -3
  22. package/cjm/token/toToken.js +1 -8
  23. package/esm/container/Container.js +5 -5
  24. package/esm/hooks/HookContext.js +3 -2
  25. package/esm/hooks/injectProp.js +1 -4
  26. package/esm/index.js +5 -5
  27. package/esm/injector/IInjector.js +2 -2
  28. package/esm/injector/MetadataInjector.js +13 -9
  29. package/esm/injector/ProxyInjector.js +1 -1
  30. package/esm/injector/SimpleInjector.js +2 -2
  31. package/esm/metadata/class.js +1 -0
  32. package/esm/metadata/method.js +1 -0
  33. package/esm/metadata/parameter.js +5 -0
  34. package/esm/provider/Provider.js +9 -8
  35. package/esm/registration/IRegistration.js +2 -2
  36. package/esm/select.js +2 -2
  37. package/esm/token/ClassToken.js +3 -3
  38. package/esm/token/FunctionToken.js +5 -4
  39. package/esm/token/GroupAliasToken.js +3 -3
  40. package/esm/token/InjectionToken.js +1 -1
  41. package/esm/token/SingleAliasToken.js +3 -3
  42. package/esm/token/SingleToken.js +3 -3
  43. package/esm/token/toToken.js +0 -6
  44. package/package.json +1 -1
  45. package/typings/container/IContainer.d.ts +2 -2
  46. package/typings/hooks/HookContext.d.ts +3 -3
  47. package/typings/hooks/hook.d.ts +1 -2
  48. package/typings/hooks/injectProp.d.ts +2 -14
  49. package/typings/index.d.ts +7 -7
  50. package/typings/injector/IInjector.d.ts +7 -4
  51. package/typings/injector/MetadataInjector.d.ts +6 -16
  52. package/typings/injector/ProxyInjector.d.ts +1 -2
  53. package/typings/injector/SimpleInjector.d.ts +1 -2
  54. package/typings/metadata/class.d.ts +1 -0
  55. package/typings/metadata/method.d.ts +1 -0
  56. package/typings/metadata/parameter.d.ts +1 -0
  57. package/typings/provider/IProvider.d.ts +5 -4
  58. package/typings/provider/Provider.d.ts +2 -2
  59. package/typings/select.d.ts +3 -3
  60. package/typings/token/ClassToken.d.ts +2 -2
  61. package/typings/token/FunctionToken.d.ts +2 -2
  62. package/typings/token/GroupAliasToken.d.ts +2 -2
  63. package/typings/token/InjectionToken.d.ts +2 -2
  64. package/typings/token/SingleAliasToken.d.ts +3 -3
  65. package/typings/token/SingleToken.d.ts +2 -2
  66. 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, ProviderOptions } from '../provider/IProvider.js';
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 }?: ProviderOptions): T;
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, ProviderOptions } 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 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 }?: ProviderOptions): T[];
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, ProviderOptions } from '../provider/IProvider.js';
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?: ProviderOptions): T;
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, ResolveOneOptions } from '../container/IContainer.js';
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 }?: ResolveOneOptions): T;
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, ProviderOptions } from '../provider/IProvider.js';
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 }?: ProviderOptions): T;
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>;