ts-ioc-container 35.1.0 → 35.2.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.
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.register = exports.getTransformers = exports.scope = exports.redirectFrom = exports.key = void 0;
4
4
  const metadata_1 = require("../metadata");
5
+ const by_1 = require("../by");
5
6
  const key = (...keys) => (r) => {
6
7
  const [originalKey, ...redirectKeys] = keys;
7
8
  return r.fromKey(originalKey).redirectFrom(...redirectKeys);
@@ -14,5 +15,10 @@ exports.scope = scope;
14
15
  const METADATA_KEY = 'registration';
15
16
  const getTransformers = (Target) => (0, metadata_1.getMetadata)(Target, METADATA_KEY) ?? [];
16
17
  exports.getTransformers = getTransformers;
17
- const register = (...mappers) => (0, metadata_1.setMetadata)(METADATA_KEY, mappers);
18
+ const register = (...mappers) => (0, metadata_1.setMetadata)(METADATA_KEY, mappers.map((m, index) => {
19
+ if ((0, by_1.isDepKey)(m)) {
20
+ return index === 0 ? m.register : m.redirectFrom;
21
+ }
22
+ return m;
23
+ }));
18
24
  exports.register = register;
@@ -1,4 +1,5 @@
1
1
  import { getMetadata, setMetadata } from '../metadata';
2
+ import { isDepKey } from '../by';
2
3
  export const key = (...keys) => (r) => {
3
4
  const [originalKey, ...redirectKeys] = keys;
4
5
  return r.fromKey(originalKey).redirectFrom(...redirectKeys);
@@ -7,4 +8,9 @@ export const redirectFrom = (...keys) => (r) => r.redirectFrom(...keys);
7
8
  export const scope = (predicate) => (r) => r.when(predicate);
8
9
  const METADATA_KEY = 'registration';
9
10
  export const getTransformers = (Target) => getMetadata(Target, METADATA_KEY) ?? [];
10
- export const register = (...mappers) => setMetadata(METADATA_KEY, mappers);
11
+ export const register = (...mappers) => setMetadata(METADATA_KEY, mappers.map((m, index) => {
12
+ if (isDepKey(m)) {
13
+ return index === 0 ? m.register : m.redirectFrom;
14
+ }
15
+ return m;
16
+ }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "35.1.0",
3
+ "version": "35.2.0",
4
4
  "description": "Typescript IoC container",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -59,5 +59,5 @@
59
59
  "ts-node": "^10.9.1",
60
60
  "typescript": "5.4.3"
61
61
  },
62
- "gitHead": "6320222600dc35448d53f507645466c0a7133ab2"
62
+ "gitHead": "a0c568ba141c21f43115797b9b3f0bc8a70751f2"
63
63
  }
package/typings/by.d.ts CHANGED
@@ -26,7 +26,7 @@ export declare const by: {
26
26
  create: (options: CreateScopeOptions) => (l: IContainer) => IContainer;
27
27
  };
28
28
  };
29
- export type DepKey<T = unknown> = {
29
+ export type DepKey<T> = {
30
30
  key: DependencyKey;
31
31
  assignTo: (registration: IRegistration<T>) => IRegistration<T>;
32
32
  register: (fn: (s: IContainer, ...args: unknown[]) => T) => IRegistration<T>;
@@ -2,5 +2,5 @@ import { constructor } from '../utils';
2
2
  import { IContainer } from '../container/IContainer';
3
3
  import { InjectFn } from '../hooks/HookContext';
4
4
  import { DepKey } from '../by';
5
- export declare const inject: (fn: InjectFn | DepKey) => ParameterDecorator;
5
+ export declare const inject: <T>(fn: InjectFn | DepKey<T>) => ParameterDecorator;
6
6
  export declare const resolveArgs: (Target: constructor<unknown>, methodName?: string) => (scope: IContainer, ...deps: unknown[]) => unknown[];
@@ -1,6 +1,7 @@
1
1
  import { DependencyKey, IContainer, IContainerModule } from '../container/IContainer';
2
2
  import { constructor, MapFn } from '../utils';
3
3
  import { IProvider } from '../provider/IProvider';
4
+ import { DepKey } from '../by';
4
5
  export type ScopePredicate = (s: IContainer) => boolean;
5
6
  export interface IRegistration<T = any> extends IContainerModule {
6
7
  when(isValidWhen: ScopePredicate): this;
@@ -13,4 +14,4 @@ export declare const key: (...keys: DependencyKey[]) => MapFn<IRegistration>;
13
14
  export declare const redirectFrom: (...keys: DependencyKey[]) => MapFn<IRegistration>;
14
15
  export declare const scope: (predicate: ScopePredicate) => MapFn<IRegistration>;
15
16
  export declare const getTransformers: (Target: constructor<unknown>) => MapFn<IRegistration<any>>[];
16
- export declare const register: (...mappers: MapFn<IRegistration>[]) => ClassDecorator;
17
+ export declare const register: (...mappers: (MapFn<IRegistration> | DepKey<unknown>)[]) => ClassDecorator;