ts-ioc-container 47.2.0 → 47.3.1
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/index.js +9 -1
- package/cjm/metadata/debounce.js +16 -0
- package/cjm/metadata/once.js +17 -0
- package/cjm/metadata/shallowCache.js +23 -0
- package/cjm/metadata/throttle.js +18 -0
- package/esm/index.js +4 -0
- package/esm/metadata/debounce.js +12 -0
- package/esm/metadata/once.js +13 -0
- package/esm/metadata/shallowCache.js +19 -0
- package/esm/metadata/throttle.js +14 -0
- package/package.json +1 -1
- package/typings/index.d.ts +4 -0
- package/typings/metadata/debounce.d.ts +1 -0
- package/typings/metadata/once.d.ts +1 -0
- package/typings/metadata/shallowCache.d.ts +1 -0
- package/typings/metadata/throttle.d.ts +1 -0
package/cjm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClassToken = exports.toSingleAlias = exports.SingleAliasToken = exports.toGroupAlias = exports.GroupAliasToken = exports.InjectionToken = exports.HooksRunner = exports.AddOnDisposeHookModule = exports.onDispose = exports.onDisposeHooksRunner = exports.AddOnConstructHookModule = exports.onConstruct = exports.onConstructHooksRunner = exports.injectProp = exports.createHookContext = exports.createHookContextFactory = exports.HookContext = exports.hasHooks = exports.hook = exports.getHooks = exports.UnexpectedHookResultError = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.DependencyMissingKeyError = exports.DependencyNotFoundError = exports.Registration = exports.bindTo = exports.register = exports.scope = exports.decorate = exports.MultiCache = exports.multiCache = exports.SingletonProvider = exports.singleton = exports.Provider = exports.resolveByArgs = exports.ProviderDecorator = exports.args = exports.argsFn = exports.lazy = exports.scopeAccess = exports.ProxyInjector = exports.SimpleInjector = exports.MetadataInjector = exports.Injector = exports.resolveArgs = exports.inject = exports.EmptyContainer = exports.Container = exports.isDependencyKey = void 0;
|
|
4
|
-
exports.resolveConstructor = exports.Is = exports.pipe = exports.select = exports.getMethodTags = exports.methodTag = exports.getMethodLabels = exports.methodLabel = exports.getMethodMeta = exports.methodMeta = exports.getParamTags = exports.paramTag = exports.getParamLabels = exports.paramLabel = exports.getParamMeta = exports.paramMeta = exports.getClassTags = exports.classTag = exports.getClassLabels = exports.classLabel = exports.getClassMeta = exports.classMeta = exports.handleAsyncError = exports.handleError = exports.GroupInstanceToken = exports.ConstantToken = exports.FunctionToken = exports.SingleToken = void 0;
|
|
4
|
+
exports.resolveConstructor = exports.Is = exports.pipe = exports.select = exports.getMethodTags = exports.methodTag = exports.getMethodLabels = exports.methodLabel = exports.getMethodMeta = exports.methodMeta = exports.getParamTags = exports.paramTag = exports.getParamLabels = exports.paramLabel = exports.getParamMeta = exports.paramMeta = exports.getClassTags = exports.classTag = exports.getClassLabels = exports.classLabel = exports.getClassMeta = exports.classMeta = exports.once = exports.shallowCache = exports.debounce = exports.throttle = exports.handleAsyncError = exports.handleError = exports.GroupInstanceToken = exports.ConstantToken = exports.FunctionToken = exports.SingleToken = void 0;
|
|
5
5
|
// Containers
|
|
6
6
|
var IContainer_1 = require("./container/IContainer");
|
|
7
7
|
Object.defineProperty(exports, "isDependencyKey", { enumerable: true, get: function () { return IContainer_1.isDependencyKey; } });
|
|
@@ -101,6 +101,14 @@ Object.defineProperty(exports, "GroupInstanceToken", { enumerable: true, get: fu
|
|
|
101
101
|
var errorHandler_1 = require("./metadata/errorHandler");
|
|
102
102
|
Object.defineProperty(exports, "handleError", { enumerable: true, get: function () { return errorHandler_1.handleError; } });
|
|
103
103
|
Object.defineProperty(exports, "handleAsyncError", { enumerable: true, get: function () { return errorHandler_1.handleAsyncError; } });
|
|
104
|
+
var throttle_1 = require("./metadata/throttle");
|
|
105
|
+
Object.defineProperty(exports, "throttle", { enumerable: true, get: function () { return throttle_1.throttle; } });
|
|
106
|
+
var debounce_1 = require("./metadata/debounce");
|
|
107
|
+
Object.defineProperty(exports, "debounce", { enumerable: true, get: function () { return debounce_1.debounce; } });
|
|
108
|
+
var shallowCache_1 = require("./metadata/shallowCache");
|
|
109
|
+
Object.defineProperty(exports, "shallowCache", { enumerable: true, get: function () { return shallowCache_1.shallowCache; } });
|
|
110
|
+
var once_1 = require("./metadata/once");
|
|
111
|
+
Object.defineProperty(exports, "once", { enumerable: true, get: function () { return once_1.once; } });
|
|
104
112
|
var class_1 = require("./metadata/class");
|
|
105
113
|
Object.defineProperty(exports, "classMeta", { enumerable: true, get: function () { return class_1.classMeta; } });
|
|
106
114
|
Object.defineProperty(exports, "getClassMeta", { enumerable: true, get: function () { return class_1.getClassMeta; } });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.debounce = void 0;
|
|
4
|
+
const debounce = (ms) => (target, propertyKey, descriptor) => {
|
|
5
|
+
const originalMethod = descriptor.value;
|
|
6
|
+
const timerMap = new WeakMap();
|
|
7
|
+
descriptor.value = function (...args) {
|
|
8
|
+
const prev = timerMap.get(this);
|
|
9
|
+
if (prev !== undefined) {
|
|
10
|
+
clearTimeout(prev);
|
|
11
|
+
}
|
|
12
|
+
timerMap.set(this, setTimeout(() => originalMethod.apply(this, args), ms));
|
|
13
|
+
};
|
|
14
|
+
return descriptor;
|
|
15
|
+
};
|
|
16
|
+
exports.debounce = debounce;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.once = void 0;
|
|
4
|
+
const once = (target, propertyKey, descriptor) => {
|
|
5
|
+
const originalMethod = descriptor.value;
|
|
6
|
+
const cacheMap = new WeakMap();
|
|
7
|
+
descriptor.value = function (...args) {
|
|
8
|
+
if (cacheMap.has(this)) {
|
|
9
|
+
return cacheMap.get(this);
|
|
10
|
+
}
|
|
11
|
+
const result = originalMethod.apply(this, args);
|
|
12
|
+
cacheMap.set(this, result);
|
|
13
|
+
return result;
|
|
14
|
+
};
|
|
15
|
+
return descriptor;
|
|
16
|
+
};
|
|
17
|
+
exports.once = once;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shallowCache = void 0;
|
|
4
|
+
const shallowCache = (getKeyByArgs) => (target, propertyKey, descriptor) => {
|
|
5
|
+
const originalMethod = descriptor.value;
|
|
6
|
+
const cacheMap = new WeakMap();
|
|
7
|
+
descriptor.value = function (...args) {
|
|
8
|
+
let cache = cacheMap.get(this);
|
|
9
|
+
if (cache === undefined) {
|
|
10
|
+
cache = new Map();
|
|
11
|
+
cacheMap.set(this, cache);
|
|
12
|
+
}
|
|
13
|
+
const key = getKeyByArgs(...args);
|
|
14
|
+
if (cache.has(key)) {
|
|
15
|
+
return cache.get(key);
|
|
16
|
+
}
|
|
17
|
+
const result = originalMethod.apply(this, args);
|
|
18
|
+
cache.set(key, result);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
return descriptor;
|
|
22
|
+
};
|
|
23
|
+
exports.shallowCache = shallowCache;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.throttle = void 0;
|
|
4
|
+
const throttle = (ms) => (target, propertyKey, descriptor) => {
|
|
5
|
+
const originalMethod = descriptor.value;
|
|
6
|
+
const lastCalledMap = new WeakMap();
|
|
7
|
+
descriptor.value = function (...args) {
|
|
8
|
+
const now = Date.now();
|
|
9
|
+
const lastCalled = lastCalledMap.get(this) ?? -Infinity;
|
|
10
|
+
if (now - lastCalled < ms) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
lastCalledMap.set(this, now);
|
|
14
|
+
return originalMethod.apply(this, args);
|
|
15
|
+
};
|
|
16
|
+
return descriptor;
|
|
17
|
+
};
|
|
18
|
+
exports.throttle = throttle;
|
package/esm/index.js
CHANGED
|
@@ -41,6 +41,10 @@ export { ConstantToken } from './token/ConstantToken';
|
|
|
41
41
|
export { GroupInstanceToken } from './token/GroupInstanceToken';
|
|
42
42
|
// Metadata
|
|
43
43
|
export { handleError, handleAsyncError } from './metadata/errorHandler';
|
|
44
|
+
export { throttle } from './metadata/throttle';
|
|
45
|
+
export { debounce } from './metadata/debounce';
|
|
46
|
+
export { shallowCache } from './metadata/shallowCache';
|
|
47
|
+
export { once } from './metadata/once';
|
|
44
48
|
export { classMeta, getClassMeta, classLabel, getClassLabels, classTag, getClassTags } from './metadata/class';
|
|
45
49
|
export { paramMeta, getParamMeta, paramLabel, getParamLabels, paramTag, getParamTags } from './metadata/parameter';
|
|
46
50
|
export { methodMeta, getMethodMeta, methodLabel, getMethodLabels, methodTag, getMethodTags } from './metadata/method';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const debounce = (ms) => (target, propertyKey, descriptor) => {
|
|
2
|
+
const originalMethod = descriptor.value;
|
|
3
|
+
const timerMap = new WeakMap();
|
|
4
|
+
descriptor.value = function (...args) {
|
|
5
|
+
const prev = timerMap.get(this);
|
|
6
|
+
if (prev !== undefined) {
|
|
7
|
+
clearTimeout(prev);
|
|
8
|
+
}
|
|
9
|
+
timerMap.set(this, setTimeout(() => originalMethod.apply(this, args), ms));
|
|
10
|
+
};
|
|
11
|
+
return descriptor;
|
|
12
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const once = (target, propertyKey, descriptor) => {
|
|
2
|
+
const originalMethod = descriptor.value;
|
|
3
|
+
const cacheMap = new WeakMap();
|
|
4
|
+
descriptor.value = function (...args) {
|
|
5
|
+
if (cacheMap.has(this)) {
|
|
6
|
+
return cacheMap.get(this);
|
|
7
|
+
}
|
|
8
|
+
const result = originalMethod.apply(this, args);
|
|
9
|
+
cacheMap.set(this, result);
|
|
10
|
+
return result;
|
|
11
|
+
};
|
|
12
|
+
return descriptor;
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const shallowCache = (getKeyByArgs) => (target, propertyKey, descriptor) => {
|
|
2
|
+
const originalMethod = descriptor.value;
|
|
3
|
+
const cacheMap = new WeakMap();
|
|
4
|
+
descriptor.value = function (...args) {
|
|
5
|
+
let cache = cacheMap.get(this);
|
|
6
|
+
if (cache === undefined) {
|
|
7
|
+
cache = new Map();
|
|
8
|
+
cacheMap.set(this, cache);
|
|
9
|
+
}
|
|
10
|
+
const key = getKeyByArgs(...args);
|
|
11
|
+
if (cache.has(key)) {
|
|
12
|
+
return cache.get(key);
|
|
13
|
+
}
|
|
14
|
+
const result = originalMethod.apply(this, args);
|
|
15
|
+
cache.set(key, result);
|
|
16
|
+
return result;
|
|
17
|
+
};
|
|
18
|
+
return descriptor;
|
|
19
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const throttle = (ms) => (target, propertyKey, descriptor) => {
|
|
2
|
+
const originalMethod = descriptor.value;
|
|
3
|
+
const lastCalledMap = new WeakMap();
|
|
4
|
+
descriptor.value = function (...args) {
|
|
5
|
+
const now = Date.now();
|
|
6
|
+
const lastCalled = lastCalledMap.get(this) ?? -Infinity;
|
|
7
|
+
if (now - lastCalled < ms) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
lastCalledMap.set(this, now);
|
|
11
|
+
return originalMethod.apply(this, args);
|
|
12
|
+
};
|
|
13
|
+
return descriptor;
|
|
14
|
+
};
|
package/package.json
CHANGED
package/typings/index.d.ts
CHANGED
|
@@ -34,6 +34,10 @@ export { FunctionToken } from './token/FunctionToken';
|
|
|
34
34
|
export { ConstantToken } from './token/ConstantToken';
|
|
35
35
|
export { type InstancePredicate, GroupInstanceToken } from './token/GroupInstanceToken';
|
|
36
36
|
export { handleError, handleAsyncError, type HandleErrorParams } from './metadata/errorHandler';
|
|
37
|
+
export { throttle } from './metadata/throttle';
|
|
38
|
+
export { debounce } from './metadata/debounce';
|
|
39
|
+
export { shallowCache } from './metadata/shallowCache';
|
|
40
|
+
export { once } from './metadata/once';
|
|
37
41
|
export { classMeta, getClassMeta, classLabel, getClassLabels, classTag, getClassTags } from './metadata/class';
|
|
38
42
|
export { paramMeta, getParamMeta, paramLabel, getParamLabels, paramTag, getParamTags } from './metadata/parameter';
|
|
39
43
|
export { methodMeta, getMethodMeta, methodLabel, getMethodLabels, methodTag, getMethodTags } from './metadata/method';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const debounce: (ms: number) => MethodDecorator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const once: MethodDecorator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const shallowCache: (getKeyByArgs: (...args: unknown[]) => unknown) => MethodDecorator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const throttle: (ms: number) => MethodDecorator;
|