ts-ioc-container 32.12.0 → 32.13.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 CHANGED
@@ -1267,7 +1267,7 @@ describe('onDispose', function () {
1267
1267
  ### Inject property
1268
1268
 
1269
1269
  ```typescript
1270
- import { by, Container, hook, injectProp, MetadataInjector, Registration, runHooksAsync } from 'ts-ioc-container';
1270
+ import { by, Container, hook, injectProp, MetadataInjector, Registration, runHooks, runHooksAsync } from 'ts-ioc-container';
1271
1271
 
1272
1272
  describe('inject property', () => {
1273
1273
  it('should inject property', () => {
@@ -1279,7 +1279,7 @@ describe('inject property', () => {
1279
1279
 
1280
1280
  const container = new Container(new MetadataInjector()).add(Registration.fromValue(expected).to('greeting'));
1281
1281
  const app = container.resolve(App);
1282
- runHooksAsync(app as object, 'onInit', { scope: container });
1282
+ runHooks(app as object, 'onInit', { scope: container });
1283
1283
 
1284
1284
  expect(app.greeting).toBe(expected);
1285
1285
  });
@@ -1287,55 +1287,6 @@ describe('inject property', () => {
1287
1287
 
1288
1288
  ```
1289
1289
 
1290
- ### Inject method
1291
-
1292
- ```typescript
1293
- import { by, Container, hook, inject, invokeExecution, MetadataInjector, Registration, runHooksAsync } from 'ts-ioc-container';
1294
-
1295
- describe('inject method', () => {
1296
- const sleep = (number: number) => new Promise((resolve) => setTimeout(resolve, number));
1297
-
1298
- it('should inject method', async () => {
1299
- class App {
1300
- greeting!: string;
1301
-
1302
- @hook('onInit', invokeExecution({ handleResult: jest.fn() }))
1303
- setGreeting(@inject(by.key('greeting')) greeting: string) {
1304
- this.greeting = greeting;
1305
- }
1306
- }
1307
- const expected = 'Hello world!';
1308
-
1309
- const container = new Container(new MetadataInjector()).add(Registration.fromValue(expected).to('greeting'));
1310
- const app = container.resolve(App);
1311
- await runHooksAsync(app, 'onInit', { scope: container });
1312
-
1313
- expect(app.greeting).toBe(expected);
1314
- });
1315
-
1316
- it('should inject method asyncronically', async () => {
1317
- class App {
1318
- greeting!: string;
1319
-
1320
- @hook('onInit', invokeExecution({ handleResult: jest.fn() }))
1321
- setGreeting(@inject(by.key('greeting')) greeting: string, @inject(by.key('person')) person: string) {
1322
- this.greeting = `${greeting}${person}`;
1323
- }
1324
- }
1325
-
1326
- const container = new Container(new MetadataInjector())
1327
- .add(Registration.fromFn(() => sleep(50).then(() => 'Hello,')).to('greeting'))
1328
- .add(Registration.fromFn(() => sleep(25).then(() => 'world')).to('person'));
1329
-
1330
- const app = container.resolve(App);
1331
- await runHooksAsync(app, 'onInit', { scope: container });
1332
-
1333
- expect(app.greeting).toBe('Hello,world');
1334
- });
1335
- });
1336
-
1337
- ```
1338
-
1339
1290
  ## Mock
1340
1291
  Sometimes you need to automatically mock all dependencies in container. This is what `AutoMockedContainer` is for.
1341
1292
 
package/cjm/hooks/hook.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.invokeExecution = exports.injectProp = exports.runHooksAsync = exports.runHooks = exports.hasHooks = exports.getHooks = exports.hook = void 0;
3
+ exports.injectProp = exports.runHooksAsync = exports.runHooks = exports.hasHooks = exports.getHooks = exports.hook = void 0;
4
4
  const HookContext_1 = require("./HookContext");
5
5
  const utils_1 = require("../utils");
6
6
  const hook = (key, ...fns) => (target, propertyKey) => {
@@ -36,8 +36,3 @@ const runHooksAsync = (target, key, { scope, createContext = HookContext_1.creat
36
36
  exports.runHooksAsync = runHooksAsync;
37
37
  const injectProp = (fn) => (context) => context.injectProperty(fn);
38
38
  exports.injectProp = injectProp;
39
- const invokeExecution = ({ handleResult }) => async (context) => {
40
- const args = await Promise.all(context.resolveArgs().map(utils_1.promisify));
41
- return handleResult(context.invokeMethod({ args }), context);
42
- };
43
- exports.invokeExecution = invokeExecution;
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.byAliases = exports.byAlias = exports.IMemoKey = exports.by = exports.HookContext = exports.invokeExecution = 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.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; } });
@@ -60,7 +60,6 @@ Object.defineProperty(exports, "hasHooks", { enumerable: true, get: function ()
60
60
  Object.defineProperty(exports, "runHooks", { enumerable: true, get: function () { return hook_1.runHooks; } });
61
61
  Object.defineProperty(exports, "runHooksAsync", { enumerable: true, get: function () { return hook_1.runHooksAsync; } });
62
62
  Object.defineProperty(exports, "injectProp", { enumerable: true, get: function () { return hook_1.injectProp; } });
63
- Object.defineProperty(exports, "invokeExecution", { enumerable: true, get: function () { return hook_1.invokeExecution; } });
64
63
  var HookContext_1 = require("./hooks/HookContext");
65
64
  Object.defineProperty(exports, "HookContext", { enumerable: true, get: function () { return HookContext_1.HookContext; } });
66
65
  // Others
package/esm/hooks/hook.js CHANGED
@@ -27,7 +27,3 @@ export const runHooksAsync = (target, key, { scope, createContext = createHookCo
27
27
  return Promise.all(hooks.flatMap(([methodName, executions]) => executions.map((execute) => runExecution(execute, createContext(target, scope, methodName)))));
28
28
  };
29
29
  export const injectProp = (fn) => (context) => context.injectProperty(fn);
30
- export const invokeExecution = ({ handleResult }) => async (context) => {
31
- const args = await Promise.all(context.resolveArgs().map(promisify));
32
- return handleResult(context.invokeMethod({ args }), context);
33
- };
package/esm/index.js CHANGED
@@ -22,7 +22,7 @@ export { DependencyNotFoundError } from './errors/DependencyNotFoundError';
22
22
  export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
23
23
  export { ContainerDisposedError } from './errors/ContainerDisposedError';
24
24
  // Hooks
25
- export { getHooks, hook, hasHooks, runHooks, runHooksAsync, injectProp, invokeExecution } from './hooks/hook';
25
+ export { getHooks, hook, hasHooks, runHooks, runHooksAsync, injectProp } from './hooks/hook';
26
26
  export { HookContext } from './hooks/HookContext';
27
27
  // Others
28
28
  export { by, IMemoKey, byAlias, byAliases } from './by';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "32.12.0",
3
+ "version": "32.13.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": "0220f5ff8371041dc9c7a4642d3a0b41a1f9a5e6"
62
+ "gitHead": "3feeca8d0ec89af22740bcdbd2b69b282d7a00b4"
63
63
  }
@@ -14,8 +14,4 @@ export declare const runHooksAsync: (target: object, key: string | symbol, { sco
14
14
  createContext?: ((Target: object, scope: IContainer, methodName?: string) => IHookContext) | undefined;
15
15
  }) => Promise<void[]>;
16
16
  export declare const injectProp: (fn: InjectFn) => Hook;
17
- type HandleResult = (result: unknown, context: IHookContext) => void | Promise<void>;
18
- export declare const invokeExecution: ({ handleResult }: {
19
- handleResult: HandleResult;
20
- }) => Hook;
21
17
  export {};
@@ -18,7 +18,7 @@ export { Registration } from './registration/Registration';
18
18
  export { DependencyNotFoundError } from './errors/DependencyNotFoundError';
19
19
  export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
20
20
  export { ContainerDisposedError } from './errors/ContainerDisposedError';
21
- export { getHooks, hook, hasHooks, Hook, runHooks, runHooksAsync, injectProp, invokeExecution } from './hooks/hook';
21
+ export { getHooks, hook, hasHooks, Hook, runHooks, runHooksAsync, injectProp } from './hooks/hook';
22
22
  export { HookContext, InjectFn, IHookContext } from './hooks/HookContext';
23
23
  export { by, InstancePredicate, IMemo, IMemoKey, byAlias, byAliases } from './by';
24
24
  export { constructor } from './utils';