ts-ioc-container 32.17.0 → 32.19.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/cjm/by.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dependencyKey = exports.by = exports.byAlias = exports.byAliases = exports.IMemoKey = exports.all = void 0;
3
+ exports.depKey = exports.by = exports.byAlias = exports.byAliases = exports.IMemoKey = exports.all = void 0;
4
4
  const Registration_1 = require("./registration/Registration");
5
5
  const Provider_1 = require("./provider/Provider");
6
6
  const utils_1 = require("./utils");
@@ -48,10 +48,30 @@ exports.by = {
48
48
  create: (...tags) => (l) => l.createScope(...tags),
49
49
  },
50
50
  };
51
- const dependencyKey = (key = (0, utils_1.generateUUID)()) => {
51
+ const depKey = (key = (0, utils_1.generateUUID)()) => {
52
+ let isValidWhen;
53
+ const mappers = [];
52
54
  return {
53
- register: (fn) => new Registration_1.Registration(() => new Provider_1.Provider(fn), key),
55
+ register: (fn) => {
56
+ const registration = new Registration_1.Registration(() => new Provider_1.Provider(fn), key).pipe(...mappers);
57
+ if (isValidWhen) {
58
+ registration.when(isValidWhen);
59
+ }
60
+ return registration;
61
+ },
54
62
  resolve: (s, ...args) => exports.by.key(key)(s, ...args),
63
+ pipe(...values) {
64
+ mappers.push(...values);
65
+ return this;
66
+ },
67
+ to(target) {
68
+ key = target;
69
+ return this;
70
+ },
71
+ when(value) {
72
+ isValidWhen = value;
73
+ return this;
74
+ },
55
75
  };
56
76
  };
57
- exports.dependencyKey = dependencyKey;
77
+ exports.depKey = depKey;
package/cjm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getParameterMetadata = exports.getMethodMetadata = exports.setMethodMetadata = exports.setParameterMetadata = exports.getMetadata = exports.setMetadata = exports.dependencyKey = exports.byAliases = exports.byAlias = exports.IMemoKey = exports.by = exports.HookContext = exports.injectProp = exports.runHooksAsync = exports.runHooks = exports.hasHooks = exports.hook = exports.getHooks = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.DependencyNotFoundError = exports.Registration = exports.register = exports.scope = exports.key = exports.decorate = exports.multiCache = exports.MultiCache = exports.SingletonProvider = exports.singleton = exports.Provider = exports.ProviderDecorator = exports.args = exports.argsFn = exports.alias = exports.visible = exports.provider = exports.ProxyInjector = exports.SimpleInjector = exports.MetadataInjector = exports.resolveArgs = exports.inject = exports.AutoMockedContainer = exports.EmptyContainer = exports.Container = exports.isDependencyKey = void 0;
3
+ exports.getParameterMetadata = exports.getMethodMetadata = exports.setMethodMetadata = exports.setParameterMetadata = exports.getMetadata = exports.setMetadata = exports.depKey = exports.byAliases = exports.byAlias = exports.IMemoKey = exports.by = exports.HookContext = exports.injectProp = exports.runHooksAsync = exports.runHooks = exports.hasHooks = exports.hook = exports.getHooks = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.DependencyNotFoundError = exports.Registration = exports.register = exports.scope = exports.key = exports.decorate = exports.multiCache = exports.MultiCache = exports.SingletonProvider = exports.singleton = exports.Provider = exports.ProviderDecorator = exports.args = exports.argsFn = exports.alias = exports.visible = exports.provider = exports.ProxyInjector = exports.SimpleInjector = exports.MetadataInjector = exports.resolveArgs = exports.inject = exports.AutoMockedContainer = exports.EmptyContainer = exports.Container = exports.isDependencyKey = void 0;
4
4
  // Containers
5
5
  var IContainer_1 = require("./container/IContainer");
6
6
  Object.defineProperty(exports, "isDependencyKey", { enumerable: true, get: function () { return IContainer_1.isDependencyKey; } });
@@ -68,7 +68,7 @@ Object.defineProperty(exports, "by", { enumerable: true, get: function () { retu
68
68
  Object.defineProperty(exports, "IMemoKey", { enumerable: true, get: function () { return by_1.IMemoKey; } });
69
69
  Object.defineProperty(exports, "byAlias", { enumerable: true, get: function () { return by_1.byAlias; } });
70
70
  Object.defineProperty(exports, "byAliases", { enumerable: true, get: function () { return by_1.byAliases; } });
71
- Object.defineProperty(exports, "dependencyKey", { enumerable: true, get: function () { return by_1.dependencyKey; } });
71
+ Object.defineProperty(exports, "depKey", { enumerable: true, get: function () { return by_1.depKey; } });
72
72
  var metadata_1 = require("./metadata");
73
73
  Object.defineProperty(exports, "setMetadata", { enumerable: true, get: function () { return metadata_1.setMetadata; } });
74
74
  Object.defineProperty(exports, "getMetadata", { enumerable: true, get: function () { return metadata_1.getMetadata; } });
package/esm/by.js CHANGED
@@ -42,9 +42,29 @@ export const by = {
42
42
  create: (...tags) => (l) => l.createScope(...tags),
43
43
  },
44
44
  };
45
- export const dependencyKey = (key = generateUUID()) => {
45
+ export const depKey = (key = generateUUID()) => {
46
+ let isValidWhen;
47
+ const mappers = [];
46
48
  return {
47
- register: (fn) => new Registration(() => new Provider(fn), key),
49
+ register: (fn) => {
50
+ const registration = new Registration(() => new Provider(fn), key).pipe(...mappers);
51
+ if (isValidWhen) {
52
+ registration.when(isValidWhen);
53
+ }
54
+ return registration;
55
+ },
48
56
  resolve: (s, ...args) => by.key(key)(s, ...args),
57
+ pipe(...values) {
58
+ mappers.push(...values);
59
+ return this;
60
+ },
61
+ to(target) {
62
+ key = target;
63
+ return this;
64
+ },
65
+ when(value) {
66
+ isValidWhen = value;
67
+ return this;
68
+ },
49
69
  };
50
70
  };
package/esm/index.js CHANGED
@@ -25,5 +25,5 @@ export { ContainerDisposedError } from './errors/ContainerDisposedError';
25
25
  export { getHooks, hook, hasHooks, runHooks, runHooksAsync, injectProp } from './hooks/hook';
26
26
  export { HookContext } from './hooks/HookContext';
27
27
  // Others
28
- export { by, IMemoKey, byAlias, byAliases, dependencyKey } from './by';
28
+ export { by, IMemoKey, byAlias, byAliases, depKey } from './by';
29
29
  export { setMetadata, getMetadata, setParameterMetadata, setMethodMetadata, getMethodMetadata, getParameterMetadata, } from './metadata';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "32.17.0",
3
+ "version": "32.19.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": "12c7c797dbc82b0d5cece1acc967dd0e7cbdc867"
62
+ "gitHead": "a7029ca6a8b1260364a2440bb93fe93e138bae12"
63
63
  }
package/typings/by.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { DependencyKey, IContainer, InjectionToken } from './container/IContainer';
2
- import { ProviderResolveOptions } from './provider/IProvider';
2
+ import { IProvider, ProviderResolveOptions } from './provider/IProvider';
3
3
  import { InjectFn } from './hooks/HookContext';
4
- import { IRegistration } from './registration/IRegistration';
4
+ import { IRegistration, ScopePredicate } from './registration/IRegistration';
5
+ import { MapFn } from './utils';
5
6
  export type InstancePredicate = (dep: unknown) => boolean;
6
7
  export declare const all: InstancePredicate;
7
8
  export type IMemo = Map<string, DependencyKey[]>;
@@ -25,8 +26,11 @@ export declare const by: {
25
26
  create: (...tags: string[]) => (l: IContainer) => IContainer;
26
27
  };
27
28
  };
28
- export declare const dependencyKey: <T>(key?: DependencyKey) => {
29
+ export declare const depKey: <T>(key?: DependencyKey) => {
29
30
  register: (fn: (s: IContainer, ...args: unknown[]) => T) => IRegistration<T>;
30
31
  resolve: (s: IContainer, ...args: unknown[]) => T;
32
+ pipe(...values: MapFn<IProvider<T>>[]): any;
33
+ to(target: DependencyKey): any;
34
+ when(value: ScopePredicate): any;
31
35
  };
32
36
  export {};
@@ -20,6 +20,6 @@ export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
20
20
  export { ContainerDisposedError } from './errors/ContainerDisposedError';
21
21
  export { getHooks, hook, hasHooks, Hook, runHooks, runHooksAsync, injectProp } from './hooks/hook';
22
22
  export { HookContext, InjectFn, IHookContext } from './hooks/HookContext';
23
- export { by, InstancePredicate, IMemo, IMemoKey, byAlias, byAliases, dependencyKey } from './by';
23
+ export { by, InstancePredicate, IMemo, IMemoKey, byAlias, byAliases, depKey } from './by';
24
24
  export { constructor } from './utils';
25
25
  export { setMetadata, getMetadata, setParameterMetadata, setMethodMetadata, getMethodMetadata, getParameterMetadata, } from './metadata';