ts-ioc-container 20.2.8 → 20.3.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 +44 -5
- package/cjm/index.d.ts +0 -2
- package/cjm/index.js +1 -5
- package/cjm/index.js.map +1 -1
- package/esm/index.d.ts +0 -2
- package/esm/index.js +0 -2
- package/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/cjm/hooks/AsyncMethodReflector.d.ts +0 -8
- package/cjm/hooks/AsyncMethodReflector.js +0 -143
- package/cjm/hooks/AsyncMethodReflector.js.map +0 -1
- package/cjm/hooks/MethodReflector.d.ts +0 -8
- package/cjm/hooks/MethodReflector.js +0 -85
- package/cjm/hooks/MethodReflector.js.map +0 -1
- package/esm/hooks/AsyncMethodReflector.d.ts +0 -8
- package/esm/hooks/AsyncMethodReflector.js +0 -32
- package/esm/hooks/AsyncMethodReflector.js.map +0 -1
- package/esm/hooks/MethodReflector.d.ts +0 -8
- package/esm/hooks/MethodReflector.js +0 -32
- package/esm/hooks/MethodReflector.js.map +0 -1
package/README.md
CHANGED
|
@@ -68,11 +68,23 @@ container.register('ILogger5', fromValue(new Logger()).build());
|
|
|
68
68
|
|
|
69
69
|
```typescript
|
|
70
70
|
import { asSingleton, perTags, forKey, by } from "ts-ioc-container";
|
|
71
|
-
import { inject } from "ts-constructor-injector";
|
|
71
|
+
import { composeDecorators, inject } from "ts-constructor-injector";
|
|
72
72
|
|
|
73
73
|
@asSingleton
|
|
74
|
+
@perTags('root')
|
|
75
|
+
@forKey('IEngine')
|
|
76
|
+
class Engine {
|
|
77
|
+
constructor(@inject(by('ILogger')) private logger: ILogger) {
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const perRoot = composeDecorators(
|
|
82
|
+
asSingleton,
|
|
83
|
+
perTags('root'),
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
@perRoot
|
|
74
87
|
@forKey('IEngine')
|
|
75
|
-
@perTags('tag1', 'tag2')
|
|
76
88
|
class Engine {
|
|
77
89
|
constructor(@inject(by('ILogger')) private logger: ILogger) {
|
|
78
90
|
}
|
|
@@ -83,14 +95,13 @@ class Engine {
|
|
|
83
95
|
|
|
84
96
|
```typescript
|
|
85
97
|
import {
|
|
86
|
-
MethodReflector,
|
|
87
|
-
createMethodHookDecorator,
|
|
88
98
|
Container,
|
|
89
99
|
IInjector,
|
|
90
100
|
ContainerHook,
|
|
91
101
|
Injector,
|
|
92
102
|
fromClass
|
|
93
103
|
} from "ts-ioc-container";
|
|
104
|
+
import { MethodReflector } from "ts-constructor-injector";
|
|
94
105
|
|
|
95
106
|
export const onConstructReflector = new MethodReflector('OnConstructHook');
|
|
96
107
|
export const onConstruct = onConstructReflector.createMethodHookDecorator();
|
|
@@ -129,7 +140,35 @@ for (const instance of container.getInstances()) {
|
|
|
129
140
|
- tags - you can add tag to scope and root container. And register provider per tag.
|
|
130
141
|
|
|
131
142
|
```typescript
|
|
132
|
-
|
|
143
|
+
import { composeDecorators } from "ts-constructor-injector";
|
|
144
|
+
import { forKey } from "ts-ioc-container";
|
|
145
|
+
|
|
146
|
+
const perRoot = composeDecorators(
|
|
147
|
+
asSingleton,
|
|
148
|
+
perTags('root'),
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
const perHome = composeDecorators(
|
|
152
|
+
asSingleton,
|
|
153
|
+
perTags('home'),
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
@perRoot
|
|
157
|
+
@forKey('IEngine')
|
|
158
|
+
class Logger {
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@perHome
|
|
162
|
+
@forKey('IEngine')
|
|
163
|
+
class Engine {
|
|
164
|
+
constructor(@inject(by('ILogger')) private logger: ILogger) {
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const container = new Container(injector, { tags: ['root'] })
|
|
169
|
+
.register('ILogger', fromClass(Logger).build())
|
|
170
|
+
.register('IEngine', fromClass(Engine).build());
|
|
171
|
+
|
|
133
172
|
const scope = container.createScope(['home', 'child']);
|
|
134
173
|
const logger = scope.resolve('ILogger');
|
|
135
174
|
scope.dispose();
|
package/cjm/index.d.ts
CHANGED
|
@@ -8,8 +8,6 @@ export { constructor } from './utils/types';
|
|
|
8
8
|
export { Container } from './container/Container';
|
|
9
9
|
export { Tagged, ResolveDependency, Tag, IProvider } from './provider/IProvider';
|
|
10
10
|
export { IInjector } from './IInjector';
|
|
11
|
-
export { MethodReflector } from './hooks/MethodReflector';
|
|
12
|
-
export { AsyncMethodReflector } from './hooks/AsyncMethodReflector';
|
|
13
11
|
export { InjectionToken } from './container/IContainer';
|
|
14
12
|
export { ProviderNotFoundError } from './provider/ProviderNotFoundError';
|
|
15
13
|
export { MethodNotImplementedError } from './utils/MethodNotImplementedError';
|
package/cjm/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.forKey = exports.asSingleton = exports.perTags = exports.fromFn = exports.fromValue = exports.fromClass = exports.by = exports.isProviderKey = exports.AutoMockedContainer = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.
|
|
28
|
+
exports.forKey = exports.asSingleton = exports.perTags = exports.fromFn = exports.fromValue = exports.fromClass = exports.by = exports.isProviderKey = exports.AutoMockedContainer = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.Container = exports.EmptyContainer = void 0;
|
|
29
29
|
var Provider_1 = require("./provider/Provider");
|
|
30
30
|
var RegistrationReflector_1 = require("./registration/RegistrationReflector");
|
|
31
31
|
var RegistrationBuilder_1 = require("./registration/RegistrationBuilder");
|
|
@@ -33,10 +33,6 @@ var EmptyContainer_1 = require("./container/EmptyContainer");
|
|
|
33
33
|
Object.defineProperty(exports, "EmptyContainer", { enumerable: true, get: function () { return EmptyContainer_1.EmptyContainer; } });
|
|
34
34
|
var Container_1 = require("./container/Container");
|
|
35
35
|
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } });
|
|
36
|
-
var MethodReflector_1 = require("./hooks/MethodReflector");
|
|
37
|
-
Object.defineProperty(exports, "MethodReflector", { enumerable: true, get: function () { return MethodReflector_1.MethodReflector; } });
|
|
38
|
-
var AsyncMethodReflector_1 = require("./hooks/AsyncMethodReflector");
|
|
39
|
-
Object.defineProperty(exports, "AsyncMethodReflector", { enumerable: true, get: function () { return AsyncMethodReflector_1.AsyncMethodReflector; } });
|
|
40
36
|
var ProviderNotFoundError_1 = require("./provider/ProviderNotFoundError");
|
|
41
37
|
Object.defineProperty(exports, "ProviderNotFoundError", { enumerable: true, get: function () { return ProviderNotFoundError_1.ProviderNotFoundError; } });
|
|
42
38
|
var MethodNotImplementedError_1 = require("./utils/MethodNotImplementedError");
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+C;AAC/C,8EAA6E;AAE7E,0EAAyE;AAGzE,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAA+C;AAC/C,8EAA6E;AAE7E,0EAAyE;AAGzE,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,mDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAIlB,0EAAyE;AAAhE,8HAAA,qBAAqB,OAAA;AAC9B,+EAA8E;AAArE,sIAAA,yBAAyB,OAAA;AAClC,6EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAC/B,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAG5B,kDAAqD;AAA5C,0GAAA,aAAa,OAAA;AAEf,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB;AAEnC,SAAgB,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,yCAAmB,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,yCAAmB,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,yCAAmB,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAFD,wBAEC;AAED,IAAM,iBAAiB,GAAG,IAAI,6CAAqB,CAAC,oBAAoB,CAAC,CAAC;AAEnE,IAAM,OAAO,GAChB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO;;YAAK,OAAA,CAAA,KAAA,EAAE,CAAC,OAAO,CAAC,CAAA,CAAC,OAAO,oCAAI,IAAI;QAA3B,CAA4B,CAAC,CAAC;IACzF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,OAAO,WAMd;AACC,IAAM,WAAW,GAAmB,UAAC,MAAM;IAC9C,IAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,CAAC;AACtF,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB;AACK,IAAM,MAAM,GACf,UAAC,GAAgB;IACjB,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;IACpF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,MAAM,UAMb"}
|
package/esm/index.d.ts
CHANGED
|
@@ -8,8 +8,6 @@ export { constructor } from './utils/types';
|
|
|
8
8
|
export { Container } from './container/Container';
|
|
9
9
|
export { Tagged, ResolveDependency, Tag, IProvider } from './provider/IProvider';
|
|
10
10
|
export { IInjector } from './IInjector';
|
|
11
|
-
export { MethodReflector } from './hooks/MethodReflector';
|
|
12
|
-
export { AsyncMethodReflector } from './hooks/AsyncMethodReflector';
|
|
13
11
|
export { InjectionToken } from './container/IContainer';
|
|
14
12
|
export { ProviderNotFoundError } from './provider/ProviderNotFoundError';
|
|
15
13
|
export { MethodNotImplementedError } from './utils/MethodNotImplementedError';
|
package/esm/index.js
CHANGED
|
@@ -3,8 +3,6 @@ import { RegistrationReflector } from './registration/RegistrationReflector';
|
|
|
3
3
|
import { RegistrationBuilder } from './registration/RegistrationBuilder';
|
|
4
4
|
export { EmptyContainer } from './container/EmptyContainer';
|
|
5
5
|
export { Container } from './container/Container';
|
|
6
|
-
export { MethodReflector } from './hooks/MethodReflector';
|
|
7
|
-
export { AsyncMethodReflector } from './hooks/AsyncMethodReflector';
|
|
8
6
|
export { ProviderNotFoundError } from './provider/ProviderNotFoundError';
|
|
9
7
|
export { MethodNotImplementedError } from './utils/MethodNotImplementedError';
|
|
10
8
|
export { ContainerDisposedError } from './container/ContainerDisposedError';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEnC,MAAM,UAAU,SAAS,CAAI,KAAqB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAQ;IACjC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,EAAwB;IAC9C,OAAO,IAAI,mBAAmB,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC;AACN,MAAM,CAAC,MAAM,WAAW,GAAmB,CAAC,MAAM,EAAE,EAAE;IAClD,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GACf,CAAC,GAAgB,EAAkB,EAAE,CACrC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.3.0",
|
|
4
4
|
"description": "Typescript IoC container",
|
|
5
5
|
"author": "ibabkin <igba14@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"npm-run-all": "4.1.5",
|
|
45
45
|
"reflect-metadata": "^0.1.13",
|
|
46
46
|
"rimraf": "3.0.2",
|
|
47
|
-
"ts-constructor-injector": "^3.0
|
|
47
|
+
"ts-constructor-injector": "^3.1.0",
|
|
48
48
|
"ts-jest": "27.0.5",
|
|
49
49
|
"typescript": "4.4.3"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "18dcaea6ec370c2abb201cfaef4348411c052621"
|
|
52
52
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class AsyncMethodReflector {
|
|
2
|
-
readonly hookKey: string | symbol;
|
|
3
|
-
constructor(hookKey: string | symbol);
|
|
4
|
-
private addHook;
|
|
5
|
-
invokeHooksOf<GInstance extends Object>(target: GInstance): Promise<void>;
|
|
6
|
-
private static getTargetId;
|
|
7
|
-
createMethodHookDecorator(): MethodDecorator;
|
|
8
|
-
}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
55
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
56
|
-
if (ar || !(i in from)) {
|
|
57
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
58
|
-
ar[i] = from[i];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
|
-
};
|
|
63
|
-
var __values = (this && this.__values) || function(o) {
|
|
64
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
65
|
-
if (m) return m.call(o);
|
|
66
|
-
if (o && typeof o.length === "number") return {
|
|
67
|
-
next: function () {
|
|
68
|
-
if (o && i >= o.length) o = void 0;
|
|
69
|
-
return { value: o && o[i++], done: !o };
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
73
|
-
};
|
|
74
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
-
exports.AsyncMethodReflector = void 0;
|
|
76
|
-
var AsyncMethodReflector = /** @class */ (function () {
|
|
77
|
-
function AsyncMethodReflector(hookKey) {
|
|
78
|
-
this.hookKey = hookKey;
|
|
79
|
-
}
|
|
80
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
81
|
-
AsyncMethodReflector.prototype.addHook = function (target, propertyKey) {
|
|
82
|
-
var targetId = AsyncMethodReflector.getTargetId(target);
|
|
83
|
-
var hooks = Reflect.getMetadata(this.hookKey, targetId) || [];
|
|
84
|
-
Reflect.defineMetadata(this.hookKey, __spreadArray(__spreadArray([], __read(hooks), false), [propertyKey], false), targetId);
|
|
85
|
-
};
|
|
86
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
87
|
-
AsyncMethodReflector.prototype.invokeHooksOf = function (target) {
|
|
88
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
89
|
-
var targetId, hooks, hooks_1, hooks_1_1, hookMethod, e_1_1;
|
|
90
|
-
var e_1, _a;
|
|
91
|
-
return __generator(this, function (_b) {
|
|
92
|
-
switch (_b.label) {
|
|
93
|
-
case 0:
|
|
94
|
-
targetId = AsyncMethodReflector.getTargetId(target);
|
|
95
|
-
hooks = Reflect.hasMetadata(this.hookKey, targetId)
|
|
96
|
-
? Reflect.getMetadata(this.hookKey, targetId)
|
|
97
|
-
: [];
|
|
98
|
-
_b.label = 1;
|
|
99
|
-
case 1:
|
|
100
|
-
_b.trys.push([1, 6, 7, 8]);
|
|
101
|
-
hooks_1 = __values(hooks), hooks_1_1 = hooks_1.next();
|
|
102
|
-
_b.label = 2;
|
|
103
|
-
case 2:
|
|
104
|
-
if (!!hooks_1_1.done) return [3 /*break*/, 5];
|
|
105
|
-
hookMethod = hooks_1_1.value;
|
|
106
|
-
return [4 /*yield*/, target[hookMethod]()];
|
|
107
|
-
case 3:
|
|
108
|
-
_b.sent();
|
|
109
|
-
_b.label = 4;
|
|
110
|
-
case 4:
|
|
111
|
-
hooks_1_1 = hooks_1.next();
|
|
112
|
-
return [3 /*break*/, 2];
|
|
113
|
-
case 5: return [3 /*break*/, 8];
|
|
114
|
-
case 6:
|
|
115
|
-
e_1_1 = _b.sent();
|
|
116
|
-
e_1 = { error: e_1_1 };
|
|
117
|
-
return [3 /*break*/, 8];
|
|
118
|
-
case 7:
|
|
119
|
-
try {
|
|
120
|
-
if (hooks_1_1 && !hooks_1_1.done && (_a = hooks_1.return)) _a.call(hooks_1);
|
|
121
|
-
}
|
|
122
|
-
finally { if (e_1) throw e_1.error; }
|
|
123
|
-
return [7 /*endfinally*/];
|
|
124
|
-
case 8: return [2 /*return*/];
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
130
|
-
AsyncMethodReflector.getTargetId = function (target) {
|
|
131
|
-
return target.constructor;
|
|
132
|
-
};
|
|
133
|
-
AsyncMethodReflector.prototype.createMethodHookDecorator = function () {
|
|
134
|
-
var _this = this;
|
|
135
|
-
return function (target, propertyKey) {
|
|
136
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
137
|
-
_this.addHook(target, propertyKey);
|
|
138
|
-
};
|
|
139
|
-
};
|
|
140
|
-
return AsyncMethodReflector;
|
|
141
|
-
}());
|
|
142
|
-
exports.AsyncMethodReflector = AsyncMethodReflector;
|
|
143
|
-
//# sourceMappingURL=AsyncMethodReflector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/AsyncMethodReflector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;IACI,8BAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,sCAAO,GAAf,UAA0C,MAAiB,EAAE,WAA4B;QACrF,IAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,yCAAM,KAAK,YAAE,WAAW,WAAG,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IAClD,4CAAa,GAAnB,UAA8C,MAAiB;;;;;;;wBACrD,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACpD,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;4BAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;4BAC7C,CAAC,CAAC,EAAE,CAAC;;;;wBAEgB,UAAA,SAAA,KAAK,CAAA;;;;wBAAnB,UAAU;wBACjB,qBAAO,MAAc,CAAC,UAAU,CAAC,EAAE,EAAA;;wBAAnC,SAAmC,CAAC;;;;;;;;;;;;;;;;;;;;KAE3C;IAED,wDAAwD;IACzC,gCAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,wDAAyB,GAAzB;QAAA,iBAKC;QAJG,OAAO,UAAC,MAAM,EAAE,WAAW;YACvB,wDAAwD;YACxD,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;IACL,2BAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,oDAAoB"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class MethodReflector {
|
|
2
|
-
readonly hookKey: string | symbol;
|
|
3
|
-
constructor(hookKey: string | symbol);
|
|
4
|
-
private addHook;
|
|
5
|
-
invokeHooksOf<GInstance extends Object>(target: GInstance): void;
|
|
6
|
-
private static getTargetId;
|
|
7
|
-
createMethodHookDecorator(): MethodDecorator;
|
|
8
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
-
if (ar || !(i in from)) {
|
|
21
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
-
ar[i] = from[i];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
-
};
|
|
27
|
-
var __values = (this && this.__values) || function(o) {
|
|
28
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
29
|
-
if (m) return m.call(o);
|
|
30
|
-
if (o && typeof o.length === "number") return {
|
|
31
|
-
next: function () {
|
|
32
|
-
if (o && i >= o.length) o = void 0;
|
|
33
|
-
return { value: o && o[i++], done: !o };
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.MethodReflector = void 0;
|
|
40
|
-
var MethodReflector = /** @class */ (function () {
|
|
41
|
-
function MethodReflector(hookKey) {
|
|
42
|
-
this.hookKey = hookKey;
|
|
43
|
-
}
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
45
|
-
MethodReflector.prototype.addHook = function (target, propertyKey) {
|
|
46
|
-
var targetId = MethodReflector.getTargetId(target);
|
|
47
|
-
var hooks = Reflect.getMetadata(this.hookKey, targetId) || [];
|
|
48
|
-
Reflect.defineMetadata(this.hookKey, __spreadArray(__spreadArray([], __read(hooks), false), [propertyKey], false), targetId);
|
|
49
|
-
};
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
51
|
-
MethodReflector.prototype.invokeHooksOf = function (target) {
|
|
52
|
-
var e_1, _a;
|
|
53
|
-
var targetId = MethodReflector.getTargetId(target);
|
|
54
|
-
var hooks = Reflect.hasMetadata(this.hookKey, targetId)
|
|
55
|
-
? Reflect.getMetadata(this.hookKey, targetId)
|
|
56
|
-
: [];
|
|
57
|
-
try {
|
|
58
|
-
for (var hooks_1 = __values(hooks), hooks_1_1 = hooks_1.next(); !hooks_1_1.done; hooks_1_1 = hooks_1.next()) {
|
|
59
|
-
var hookMethod = hooks_1_1.value;
|
|
60
|
-
target[hookMethod]();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
64
|
-
finally {
|
|
65
|
-
try {
|
|
66
|
-
if (hooks_1_1 && !hooks_1_1.done && (_a = hooks_1.return)) _a.call(hooks_1);
|
|
67
|
-
}
|
|
68
|
-
finally { if (e_1) throw e_1.error; }
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
72
|
-
MethodReflector.getTargetId = function (target) {
|
|
73
|
-
return target.constructor;
|
|
74
|
-
};
|
|
75
|
-
MethodReflector.prototype.createMethodHookDecorator = function () {
|
|
76
|
-
var _this = this;
|
|
77
|
-
return function (target, propertyKey) {
|
|
78
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
79
|
-
_this.addHook(target, propertyKey);
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
return MethodReflector;
|
|
83
|
-
}());
|
|
84
|
-
exports.MethodReflector = MethodReflector;
|
|
85
|
-
//# sourceMappingURL=MethodReflector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;IACI,yBAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,iCAAO,GAAf,UAA0C,MAAiB,EAAE,WAA4B;QACrF,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,IAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,yCAAM,KAAK,YAAE,WAAW,WAAG,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,uCAAa,GAAb,UAAwC,MAAiB;;QACrD,IAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,IAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;;YAET,KAAyB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE;gBAA3B,IAAM,UAAU,kBAAA;gBAChB,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;aACjC;;;;;;;;;IACL,CAAC;IAED,wDAAwD;IACzC,2BAAW,GAA1B,UAA2D,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,mDAAyB,GAAzB;QAAA,iBAKC;QAJG,OAAO,UAAC,MAAM,EAAE,WAAW;YACvB,wDAAwD;YACxD,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;IACL,sBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,0CAAe"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class AsyncMethodReflector {
|
|
2
|
-
readonly hookKey: string | symbol;
|
|
3
|
-
constructor(hookKey: string | symbol);
|
|
4
|
-
private addHook;
|
|
5
|
-
invokeHooksOf<GInstance extends Object>(target: GInstance): Promise<void>;
|
|
6
|
-
private static getTargetId;
|
|
7
|
-
createMethodHookDecorator(): MethodDecorator;
|
|
8
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export class AsyncMethodReflector {
|
|
2
|
-
constructor(hookKey) {
|
|
3
|
-
this.hookKey = hookKey;
|
|
4
|
-
}
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
6
|
-
addHook(target, propertyKey) {
|
|
7
|
-
const targetId = AsyncMethodReflector.getTargetId(target);
|
|
8
|
-
const hooks = Reflect.getMetadata(this.hookKey, targetId) || [];
|
|
9
|
-
Reflect.defineMetadata(this.hookKey, [...hooks, propertyKey], targetId);
|
|
10
|
-
}
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
12
|
-
async invokeHooksOf(target) {
|
|
13
|
-
const targetId = AsyncMethodReflector.getTargetId(target);
|
|
14
|
-
const hooks = Reflect.hasMetadata(this.hookKey, targetId)
|
|
15
|
-
? Reflect.getMetadata(this.hookKey, targetId)
|
|
16
|
-
: [];
|
|
17
|
-
for (const hookMethod of hooks) {
|
|
18
|
-
await target[hookMethod]();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
22
|
-
static getTargetId(target) {
|
|
23
|
-
return target.constructor;
|
|
24
|
-
}
|
|
25
|
-
createMethodHookDecorator() {
|
|
26
|
-
return (target, propertyKey) => {
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
28
|
-
this.addHook(target, propertyKey);
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=AsyncMethodReflector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncMethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/AsyncMethodReflector.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAoB;IAC7B,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QACrF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,aAAa,CAA2B,MAAiB;QAC3D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC5B,MAAO,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;SACvC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,WAAW,CAAiC,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,yBAAyB;QACrB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAC3B,wDAAwD;YACxD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class MethodReflector {
|
|
2
|
-
readonly hookKey: string | symbol;
|
|
3
|
-
constructor(hookKey: string | symbol);
|
|
4
|
-
private addHook;
|
|
5
|
-
invokeHooksOf<GInstance extends Object>(target: GInstance): void;
|
|
6
|
-
private static getTargetId;
|
|
7
|
-
createMethodHookDecorator(): MethodDecorator;
|
|
8
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export class MethodReflector {
|
|
2
|
-
constructor(hookKey) {
|
|
3
|
-
this.hookKey = hookKey;
|
|
4
|
-
}
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
6
|
-
addHook(target, propertyKey) {
|
|
7
|
-
const targetId = MethodReflector.getTargetId(target);
|
|
8
|
-
const hooks = Reflect.getMetadata(this.hookKey, targetId) || [];
|
|
9
|
-
Reflect.defineMetadata(this.hookKey, [...hooks, propertyKey], targetId);
|
|
10
|
-
}
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
12
|
-
invokeHooksOf(target) {
|
|
13
|
-
const targetId = MethodReflector.getTargetId(target);
|
|
14
|
-
const hooks = Reflect.hasMetadata(this.hookKey, targetId)
|
|
15
|
-
? Reflect.getMetadata(this.hookKey, targetId)
|
|
16
|
-
: [];
|
|
17
|
-
for (const hookMethod of hooks) {
|
|
18
|
-
target[hookMethod]();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
22
|
-
static getTargetId(target) {
|
|
23
|
-
return target.constructor;
|
|
24
|
-
}
|
|
25
|
-
createMethodHookDecorator() {
|
|
26
|
-
return (target, propertyKey) => {
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
28
|
-
this.addHook(target, propertyKey);
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=MethodReflector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MethodReflector.js","sourceRoot":"","sources":["../../lib/hooks/MethodReflector.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IACxB,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,wDAAwD;IAChD,OAAO,CAA2B,MAAiB,EAAE,WAA4B;QACrF,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED,wDAAwD;IACxD,aAAa,CAA2B,MAAiB;QACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,GAAa,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/D,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC;QAET,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC3B,MAAc,CAAC,UAAU,CAAC,EAAE,CAAC;SACjC;IACL,CAAC;IAED,wDAAwD;IAChD,MAAM,CAAC,WAAW,CAAiC,MAAiB;QACxE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,yBAAyB;QACrB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YAC3B,wDAAwD;YACxD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACN,CAAC;CACJ"}
|