ts-ioc-container 35.2.2 → 35.2.3
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/errors/UnexpectedHookResultError.js +11 -0
- package/cjm/hooks/hook.js +4 -5
- package/cjm/index.js +3 -1
- package/esm/errors/UnexpectedHookResultError.js +7 -0
- package/esm/hooks/hook.js +4 -5
- package/esm/index.js +1 -0
- package/package.json +2 -2
- package/typings/errors/UnexpectedHookResultError.d.ts +4 -0
- package/typings/index.d.ts +1 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnexpectedHookResultError = void 0;
|
|
4
|
+
class UnexpectedHookResultError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'UnexpectedHookResultError';
|
|
8
|
+
Object.setPrototypeOf(this, UnexpectedHookResultError.prototype);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.UnexpectedHookResultError = UnexpectedHookResultError;
|
package/cjm/hooks/hook.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
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
|
+
const UnexpectedHookResultError_1 = require("../errors/UnexpectedHookResultError");
|
|
6
7
|
const isHookClassConstructor = (execute) => {
|
|
7
8
|
return (0, utils_1.isConstructor)(execute) && execute.prototype.execute;
|
|
8
9
|
};
|
|
@@ -27,11 +28,9 @@ const runHooks = (target, key, { scope, createContext = HookContext_1.createHook
|
|
|
27
28
|
for (const [methodName, executions] of hooks) {
|
|
28
29
|
for (const execute of executions) {
|
|
29
30
|
const context = createContext(target, scope, methodName);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
else {
|
|
34
|
-
execute(context);
|
|
31
|
+
const result = isHookClassConstructor(execute) ? scope.resolve(execute).execute(context) : execute(context);
|
|
32
|
+
if (result instanceof Promise) {
|
|
33
|
+
throw new UnexpectedHookResultError_1.UnexpectedHookResultError(`Hook ${methodName} returned a promise, use runHooksAsync instead`);
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
}
|
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.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.redirectFrom = 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.UnexpectedHookResultError = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.DependencyNotFoundError = exports.Registration = exports.redirectFrom = 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; } });
|
|
@@ -53,6 +53,8 @@ var MethodNotImplementedError_1 = require("./errors/MethodNotImplementedError");
|
|
|
53
53
|
Object.defineProperty(exports, "MethodNotImplementedError", { enumerable: true, get: function () { return MethodNotImplementedError_1.MethodNotImplementedError; } });
|
|
54
54
|
var ContainerDisposedError_1 = require("./errors/ContainerDisposedError");
|
|
55
55
|
Object.defineProperty(exports, "ContainerDisposedError", { enumerable: true, get: function () { return ContainerDisposedError_1.ContainerDisposedError; } });
|
|
56
|
+
var UnexpectedHookResultError_1 = require("./errors/UnexpectedHookResultError");
|
|
57
|
+
Object.defineProperty(exports, "UnexpectedHookResultError", { enumerable: true, get: function () { return UnexpectedHookResultError_1.UnexpectedHookResultError; } });
|
|
56
58
|
// Hooks
|
|
57
59
|
var hook_1 = require("./hooks/hook");
|
|
58
60
|
Object.defineProperty(exports, "getHooks", { enumerable: true, get: function () { return hook_1.getHooks; } });
|
package/esm/hooks/hook.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createHookContext } from './HookContext';
|
|
2
2
|
import { isConstructor, promisify } from '../utils';
|
|
3
|
+
import { UnexpectedHookResultError } from '../errors/UnexpectedHookResultError';
|
|
3
4
|
const isHookClassConstructor = (execute) => {
|
|
4
5
|
return isConstructor(execute) && execute.prototype.execute;
|
|
5
6
|
};
|
|
@@ -21,11 +22,9 @@ export const runHooks = (target, key, { scope, createContext = createHookContext
|
|
|
21
22
|
for (const [methodName, executions] of hooks) {
|
|
22
23
|
for (const execute of executions) {
|
|
23
24
|
const context = createContext(target, scope, methodName);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
else {
|
|
28
|
-
execute(context);
|
|
25
|
+
const result = isHookClassConstructor(execute) ? scope.resolve(execute).execute(context) : execute(context);
|
|
26
|
+
if (result instanceof Promise) {
|
|
27
|
+
throw new UnexpectedHookResultError(`Hook ${methodName} returned a promise, use runHooksAsync instead`);
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
}
|
package/esm/index.js
CHANGED
|
@@ -21,6 +21,7 @@ export { Registration } from './registration/Registration';
|
|
|
21
21
|
export { DependencyNotFoundError } from './errors/DependencyNotFoundError';
|
|
22
22
|
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
|
|
23
23
|
export { ContainerDisposedError } from './errors/ContainerDisposedError';
|
|
24
|
+
export { UnexpectedHookResultError } from './errors/UnexpectedHookResultError';
|
|
24
25
|
// Hooks
|
|
25
26
|
export { getHooks, hook, hasHooks, runHooks, runHooksAsync, injectProp } from './hooks/hook';
|
|
26
27
|
export { HookContext } from './hooks/HookContext';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "35.2.
|
|
3
|
+
"version": "35.2.3",
|
|
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": "
|
|
62
|
+
"gitHead": "5c2d64e52655c92bbceb219595b882cadc44b2f6"
|
|
63
63
|
}
|
package/typings/index.d.ts
CHANGED
|
@@ -18,6 +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 { UnexpectedHookResultError } from './errors/UnexpectedHookResultError';
|
|
21
22
|
export { getHooks, hook, hasHooks, HookFn, HookClass, runHooks, runHooksAsync, injectProp } from './hooks/hook';
|
|
22
23
|
export { HookContext, InjectFn, IHookContext } from './hooks/HookContext';
|
|
23
24
|
export { by, InstancePredicate, IMemo, IMemoKey, byAlias, byAliases, depKey, DepKey } from './by';
|