@daiso-tech/core 0.44.0 → 0.45.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 +3 -0
- package/dist/cache/contracts/cache.errors.d.ts +3 -3
- package/dist/cache/contracts/cache.errors.js +1 -1
- package/dist/cache/contracts/cache.errors.js.map +1 -1
- package/dist/cache/contracts/cache.events.d.ts +8 -8
- package/dist/cache/contracts/cache.events.js +1 -1
- package/dist/cache/contracts/cache.events.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -8
- package/dist/cache/implementations/derivables/cache/cache.js +3 -8
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +2 -2
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +2 -4
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/cache/implementations/test-utilities/cache.test-suite.js +141 -36
- package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
- package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +3 -3
- package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +1 -1
- package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +11 -8
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js +3 -8
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.d.ts +2 -2
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.d.ts +4 -4
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts +2 -2
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js +2 -4
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts +2 -2
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js +2 -4
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +2 -8
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +3 -8
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +2 -2
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +2 -4
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/lock/contracts/lock.errors.d.ts +4 -4
- package/dist/lock/contracts/lock.errors.js +1 -1
- package/dist/lock/contracts/lock.errors.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +11 -8
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +3 -8
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +2 -2
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +4 -4
- package/dist/lock/implementations/derivables/lock-provider/lock.js +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +2 -2
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +2 -4
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
- package/dist/namespace/contracts/_module-exports.d.ts +1 -0
- package/dist/namespace/contracts/_module-exports.js +2 -0
- package/dist/namespace/contracts/_module-exports.js.map +1 -0
- package/dist/namespace/contracts/_module.d.ts +1 -0
- package/dist/namespace/contracts/_module.js +2 -0
- package/dist/namespace/contracts/_module.js.map +1 -0
- package/dist/namespace/contracts/namespace.contract.d.ts +17 -0
- package/dist/namespace/contracts/namespace.contract.js +5 -0
- package/dist/namespace/contracts/namespace.contract.js.map +1 -0
- package/dist/namespace/implementations/_module-exports.d.ts +2 -0
- package/dist/namespace/implementations/_module-exports.js +3 -0
- package/dist/namespace/implementations/_module-exports.js.map +1 -0
- package/dist/namespace/implementations/_module.d.ts +2 -0
- package/dist/namespace/implementations/_module.js +3 -0
- package/dist/namespace/implementations/_module.js.map +1 -0
- package/dist/namespace/{namespace.d.ts → implementations/namespace.d.ts} +18 -33
- package/dist/namespace/{namespace.js → implementations/namespace.js} +20 -4
- package/dist/namespace/implementations/namespace.js.map +1 -0
- package/dist/namespace/implementations/no-op-namespace.d.ts +14 -0
- package/dist/namespace/implementations/no-op-namespace.js +34 -0
- package/dist/namespace/implementations/no-op-namespace.js.map +1 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +21 -9
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js +30 -10
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.d.ts +38 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js +75 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js.map +1 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts +21 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js +25 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +1 -1
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts +2 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js +2 -4
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map +1 -1
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts +2 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js +2 -4
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js.map +1 -1
- package/dist/semaphore/contracts/semaphore.errors.d.ts +4 -4
- package/dist/semaphore/contracts/semaphore.errors.js +1 -1
- package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +11 -8
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +3 -8
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.d.ts +2 -2
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +4 -4
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +2 -2
- package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js +2 -4
- package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -1
- package/dist/shared-lock/contracts/shared-lock.errors.d.ts +7 -7
- package/dist/shared-lock/contracts/shared-lock.errors.js +1 -1
- package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +11 -8
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +3 -8
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.d.ts +2 -2
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +4 -4
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +2 -2
- package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js +2 -4
- package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -1
- package/dist/task/implementations/task.d.ts +1 -1
- package/dist/task/implementations/task.js +1 -1
- package/dist/task/implementations/task.js.map +1 -1
- package/dist/time-span/implementations/time-span.d.ts +17 -0
- package/dist/time-span/implementations/time-span.js +27 -1
- package/dist/time-span/implementations/time-span.js.map +1 -1
- package/package.json +53 -52
- package/dist/namespace/_module-exports.d.ts +0 -1
- package/dist/namespace/_module-exports.js +0 -2
- package/dist/namespace/_module-exports.js.map +0 -1
- package/dist/namespace/_module.d.ts +0 -1
- package/dist/namespace/_module.js +0 -2
- package/dist/namespace/_module.js.map +0 -1
- package/dist/namespace/namespace.js.map +0 -1
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
5
|
import {} from "../../../../lock/contracts/_module.js";
|
|
6
|
-
import {
|
|
7
|
-
import {} from "../../../../namespace/_module.js";
|
|
6
|
+
import { LockProvider, } from "../../../../lock/implementations/derivables/lock-provider/_module.js";
|
|
7
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
8
8
|
import {} from "../../../../time-span/contracts/_module.js";
|
|
9
9
|
import { DefaultAdapterNotDefinedError, UnregisteredAdapterError, } from "../../../../utilities/_module.js";
|
|
10
10
|
/**
|
|
@@ -123,11 +123,9 @@ export class LockProviderFactory {
|
|
|
123
123
|
if (adapter === undefined) {
|
|
124
124
|
throw new UnregisteredAdapterError(adapterName);
|
|
125
125
|
}
|
|
126
|
-
const { namespace = DEFAULT_LOCK_PROVIDER_NAMESPACE } = this.settings;
|
|
127
126
|
return new LockProvider({
|
|
128
127
|
...this.settings,
|
|
129
128
|
adapter,
|
|
130
|
-
namespace: namespace.appendRoot(adapterName),
|
|
131
129
|
serdeTransformerName: adapterName,
|
|
132
130
|
});
|
|
133
131
|
}
|
package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-provider-factory.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAIN,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH
|
|
1
|
+
{"version":3,"file":"lock-provider-factory.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAIN,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,YAAY,GAEf,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAmB,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EACH,6BAA6B,EAC7B,wBAAwB,GAE3B,MAAM,wBAAwB,CAAC;AAuBhC;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAyBP;IAtBrB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YACqB,QAAgD;QAAhD,aAAQ,GAAR,QAAQ,CAAwC;IAClE,CAAC;IAEJ,YAAY,CAAC,SAAqB;QAC9B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CACX,QAA+B;QAE/B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,QAAQ;SACzB,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAmB;QAC3B,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,GAAc;QACxB,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,GAAG;SAClB,CAAC,CAAC;IACP,CAAC;IAED,0BAA0B,CACtB,QAAmB;QAEnB,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,uBAAuB,EAAE,QAAQ;SACpC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAAC,IAAe;QAClC,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,mBAAmB,EAAE,IAAI;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,IAAe;QACjC,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,kBAAkB,EAAE,IAAI;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;YACP,oBAAoB,EAAE,WAAW;SACpC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../../namespace/contracts/namespace.contract.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/namespace/contracts/_module-exports.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from "../../namespace/contracts/namespace.contract.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../src/namespace/contracts/_module.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Namespace
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @group Contracts
|
|
6
|
+
*/
|
|
7
|
+
export type IKey = {
|
|
8
|
+
get(): string;
|
|
9
|
+
toString(): string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @group Contracts
|
|
13
|
+
*/
|
|
14
|
+
export type INamespace = {
|
|
15
|
+
toString(): string;
|
|
16
|
+
create(key: string): IKey;
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.contract.js","sourceRoot":"","sources":["../../../src/namespace/contracts/namespace.contract.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/namespace/implementations/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../src/namespace/implementations/_module.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC"}
|
|
@@ -1,33 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Namespace
|
|
3
3
|
*/
|
|
4
|
-
import { type
|
|
4
|
+
import { type IKey, type INamespace } from "../../namespace/contracts/_module.js";
|
|
5
|
+
import { type ISerializable } from "../../serde/contracts/flexible-serde.contract.js";
|
|
6
|
+
import { type OneOrMore } from "../../utilities/_module.js";
|
|
5
7
|
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
type KeySettings = {
|
|
9
|
-
prefixArr: Array<string>;
|
|
10
|
-
key: string;
|
|
11
|
-
delimeter: string;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
16
|
-
*/
|
|
17
|
-
export declare class Key {
|
|
18
|
-
private readonly prefixArr;
|
|
19
|
-
private readonly key;
|
|
20
|
-
private readonly delimeter;
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* @internal
|
|
24
|
-
*/
|
|
25
|
-
constructor(settings: KeySettings);
|
|
26
|
-
get(): string;
|
|
27
|
-
toString(): string;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
*
|
|
31
8
|
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
32
9
|
*/
|
|
33
10
|
export type NamespaceSettings = {
|
|
@@ -40,10 +17,17 @@ export type NamespaceSettings = {
|
|
|
40
17
|
*/
|
|
41
18
|
rootIdentifier?: string;
|
|
42
19
|
};
|
|
20
|
+
export type SerializedNamespace = {
|
|
21
|
+
version: "1";
|
|
22
|
+
root: string | string[];
|
|
23
|
+
delimiter: string;
|
|
24
|
+
rootIdentifier: string;
|
|
25
|
+
};
|
|
43
26
|
/**
|
|
44
27
|
* The `Namespace` class adds prefixes/suffixes to keys to avoid conflicts and group related items.
|
|
45
28
|
*
|
|
46
29
|
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
30
|
+
* @group Adapters
|
|
47
31
|
*
|
|
48
32
|
* @example
|
|
49
33
|
* ```ts
|
|
@@ -70,18 +54,19 @@ export type NamespaceSettings = {
|
|
|
70
54
|
*
|
|
71
55
|
* ```
|
|
72
56
|
*/
|
|
73
|
-
export declare class Namespace {
|
|
57
|
+
export declare class Namespace implements INamespace, ISerializable<SerializedNamespace> {
|
|
74
58
|
private readonly root;
|
|
59
|
+
static deserialize(serialized: SerializedNamespace): Namespace;
|
|
75
60
|
private readonly delimeter;
|
|
76
61
|
private readonly rootIdentifier;
|
|
77
62
|
constructor(root: OneOrMore<string>, settings?: NamespaceSettings);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
63
|
+
serialize(): SerializedNamespace;
|
|
64
|
+
setDelimeter(delimeter: string): INamespace;
|
|
65
|
+
setRootIdentifier(identifier: string): INamespace;
|
|
66
|
+
appendRoot(str: OneOrMore<string>): INamespace;
|
|
67
|
+
prependRoot(str: OneOrMore<string>): INamespace;
|
|
82
68
|
private validate;
|
|
83
69
|
private getKeyPrefixArray;
|
|
84
70
|
toString(): string;
|
|
85
|
-
create(key: string):
|
|
71
|
+
create(key: string): IKey;
|
|
86
72
|
}
|
|
87
|
-
export {};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Namespace
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import {} from "../../namespace/contracts/_module.js";
|
|
5
|
+
import {} from "../../serde/contracts/flexible-serde.contract.js";
|
|
6
|
+
import { resolveOneOrMoreStr, resolveOneOrMore, UnexpectedError, } from "../../utilities/_module.js";
|
|
5
7
|
/**
|
|
6
|
-
*
|
|
7
|
-
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
8
|
+
* @internal
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
+
class Key {
|
|
10
11
|
prefixArr;
|
|
11
12
|
key;
|
|
12
13
|
delimeter;
|
|
@@ -31,6 +32,7 @@ export class Key {
|
|
|
31
32
|
* The `Namespace` class adds prefixes/suffixes to keys to avoid conflicts and group related items.
|
|
32
33
|
*
|
|
33
34
|
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
35
|
+
* @group Adapters
|
|
34
36
|
*
|
|
35
37
|
* @example
|
|
36
38
|
* ```ts
|
|
@@ -59,6 +61,12 @@ export class Key {
|
|
|
59
61
|
*/
|
|
60
62
|
export class Namespace {
|
|
61
63
|
root;
|
|
64
|
+
static deserialize(serialized) {
|
|
65
|
+
return new Namespace(serialized.root, {
|
|
66
|
+
delimeter: serialized.delimiter,
|
|
67
|
+
rootIdentifier: serialized.rootIdentifier,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
62
70
|
delimeter;
|
|
63
71
|
rootIdentifier;
|
|
64
72
|
constructor(root, settings = {}) {
|
|
@@ -67,6 +75,14 @@ export class Namespace {
|
|
|
67
75
|
this.delimeter = delimeter;
|
|
68
76
|
this.rootIdentifier = rootIdentifier;
|
|
69
77
|
}
|
|
78
|
+
serialize() {
|
|
79
|
+
return {
|
|
80
|
+
root: typeof this.root === "string" ? this.root : [...this.root],
|
|
81
|
+
delimiter: this.delimeter,
|
|
82
|
+
rootIdentifier: this.rootIdentifier,
|
|
83
|
+
version: "1",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
70
86
|
setDelimeter(delimeter) {
|
|
71
87
|
return new Namespace(this.root, {
|
|
72
88
|
rootIdentifier: this.rootIdentifier,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/namespace/implementations/namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Namespace
|
|
3
|
+
*/
|
|
4
|
+
import { type IKey, type INamespace } from "../../namespace/contracts/_module.js";
|
|
5
|
+
/**
|
|
6
|
+
* This `NoOpNamespace` will disable namespacing.
|
|
7
|
+
*
|
|
8
|
+
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
9
|
+
* @group Adapters
|
|
10
|
+
*/
|
|
11
|
+
export declare class NoOpNamespace implements INamespace {
|
|
12
|
+
toString(): string;
|
|
13
|
+
create(key: string): IKey;
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Namespace
|
|
3
|
+
*/
|
|
4
|
+
import {} from "../../namespace/contracts/_module.js";
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
class NoOpKey {
|
|
9
|
+
key;
|
|
10
|
+
constructor(key) {
|
|
11
|
+
this.key = key;
|
|
12
|
+
}
|
|
13
|
+
get() {
|
|
14
|
+
return this.key;
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
return this.key;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* This `NoOpNamespace` will disable namespacing.
|
|
22
|
+
*
|
|
23
|
+
* IMPORT_PATH: `"@daiso-tech/core/namespace"`
|
|
24
|
+
* @group Adapters
|
|
25
|
+
*/
|
|
26
|
+
export class NoOpNamespace {
|
|
27
|
+
toString() {
|
|
28
|
+
return "";
|
|
29
|
+
}
|
|
30
|
+
create(key) {
|
|
31
|
+
return new NoOpKey(key);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=no-op-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-op-namespace.js","sourceRoot":"","sources":["../../../src/namespace/implementations/no-op-namespace.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA8B,MAAM,kCAAkC,CAAC;AAE9E;;GAEG;AACH,MAAM,OAAO;IACoB;IAA7B,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAE5C,GAAG;QACC,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACtB,QAAQ;QACJ,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAW;QACd,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACJ"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* @module RateLimiter
|
|
3
3
|
*/
|
|
4
4
|
import { type EventListener, type IEventBus, type Unsubscribe } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import {
|
|
5
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import { type IRateLimiter, type IRateLimiterAdapter, type IRateLimiterProvider, type RateLimiterEventMap, type RateLimiterProviderCreateSettings } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
+
import { type ISerderRegister } from "../../../../serde/contracts/_module.js";
|
|
7
8
|
import { type ITask } from "../../../../task/contracts/_module.js";
|
|
8
|
-
import { type ErrorPolicy } from "../../../../utilities/_module.js";
|
|
9
|
+
import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
|
|
9
10
|
/**
|
|
10
11
|
*
|
|
11
12
|
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
|
|
@@ -20,7 +21,7 @@ export type RateLimiterProviderSettingsBase = {
|
|
|
20
21
|
* new Namespace("@rate-limiter")
|
|
21
22
|
* ```
|
|
22
23
|
*/
|
|
23
|
-
namespace?:
|
|
24
|
+
namespace?: INamespace;
|
|
24
25
|
/**
|
|
25
26
|
* @default
|
|
26
27
|
* ```ts
|
|
@@ -53,6 +54,20 @@ export type RateLimiterProviderSettingsBase = {
|
|
|
53
54
|
* @default true
|
|
54
55
|
*/
|
|
55
56
|
enableAsyncTracking?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* @default
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { Serde } from "@daiso-tech/serde";
|
|
61
|
+
* import { NoOpSerdeAdapter } from "@daiso-tech/serde/no-op-serde-adapter";
|
|
62
|
+
*
|
|
63
|
+
* new Serde(new NoOpSerdeAdapter())
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
serde?: OneOrMore<ISerderRegister>;
|
|
67
|
+
/**
|
|
68
|
+
* @default ""
|
|
69
|
+
*/
|
|
70
|
+
serdeTransformerName?: string;
|
|
56
71
|
};
|
|
57
72
|
/**
|
|
58
73
|
*
|
|
@@ -62,12 +77,6 @@ export type RateLimiterProviderSettingsBase = {
|
|
|
62
77
|
export type RateLimiterProviderSettings = RateLimiterProviderSettingsBase & {
|
|
63
78
|
adapter: IRateLimiterAdapter;
|
|
64
79
|
};
|
|
65
|
-
/**
|
|
66
|
-
*
|
|
67
|
-
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
|
|
68
|
-
* @group Derivables
|
|
69
|
-
*/
|
|
70
|
-
export declare const DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE: Namespace;
|
|
71
80
|
/**
|
|
72
81
|
* The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
|
|
73
82
|
*
|
|
@@ -81,6 +90,8 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
|
|
|
81
90
|
private readonly onlyError;
|
|
82
91
|
private readonly defaultErrorPolicy;
|
|
83
92
|
private readonly enableAsyncTracking;
|
|
93
|
+
private readonly serde;
|
|
94
|
+
private readonly serdeTransformerName;
|
|
84
95
|
/**
|
|
85
96
|
* @example
|
|
86
97
|
* ```ts
|
|
@@ -113,6 +124,7 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
|
|
|
113
124
|
* ```
|
|
114
125
|
*/
|
|
115
126
|
constructor(settings: RateLimiterProviderSettings);
|
|
127
|
+
private registerToSerde;
|
|
116
128
|
addListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
|
|
117
129
|
removeListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
|
|
118
130
|
listenOnce<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
|
package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js
CHANGED
|
@@ -4,17 +4,16 @@
|
|
|
4
4
|
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
5
|
import { NoOpEventBusAdapter } from "../../../../event-bus/implementations/adapters/_module.js";
|
|
6
6
|
import { EventBus } from "../../../../event-bus/implementations/derivables/_module.js";
|
|
7
|
-
import {
|
|
7
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
8
|
+
import { NoOpNamespace } from "../../../../namespace/implementations/_module.js";
|
|
8
9
|
import {} from "../../../../rate-limiter/contracts/_module.js";
|
|
10
|
+
import { RateLimiterSerdeTransformer } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js";
|
|
9
11
|
import { RateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
|
|
12
|
+
import {} from "../../../../serde/contracts/_module.js";
|
|
13
|
+
import { NoOpSerdeAdapter } from "../../../../serde/implementations/adapters/_module.js";
|
|
14
|
+
import { Serde } from "../../../../serde/implementations/derivables/_module.js";
|
|
10
15
|
import {} from "../../../../task/contracts/_module.js";
|
|
11
|
-
import {} from "../../../../utilities/_module.js";
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
|
|
15
|
-
* @group Derivables
|
|
16
|
-
*/
|
|
17
|
-
export const DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE = new Namespace("@rate-limiter");
|
|
16
|
+
import { CORE, resolveOneOrMore, } from "../../../../utilities/_module.js";
|
|
18
17
|
/**
|
|
19
18
|
* The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
|
|
20
19
|
*
|
|
@@ -28,6 +27,8 @@ export class RateLimiterProvider {
|
|
|
28
27
|
onlyError;
|
|
29
28
|
defaultErrorPolicy;
|
|
30
29
|
enableAsyncTracking;
|
|
30
|
+
serde;
|
|
31
|
+
serdeTransformerName;
|
|
31
32
|
/**
|
|
32
33
|
* @example
|
|
33
34
|
* ```ts
|
|
@@ -60,15 +61,32 @@ export class RateLimiterProvider {
|
|
|
60
61
|
* ```
|
|
61
62
|
*/
|
|
62
63
|
constructor(settings) {
|
|
63
|
-
const { enableAsyncTracking = true, namespace =
|
|
64
|
+
const { enableAsyncTracking = true, namespace = new NoOpNamespace(), eventBus = new EventBus({
|
|
64
65
|
adapter: new NoOpEventBusAdapter(),
|
|
65
|
-
}), adapter, onlyError = false, defaultErrorPolicy = () => true, } = settings;
|
|
66
|
+
}), adapter, onlyError = false, defaultErrorPolicy = () => true, serde = new Serde(new NoOpSerdeAdapter()), serdeTransformerName = "", } = settings;
|
|
67
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
66
68
|
this.enableAsyncTracking = enableAsyncTracking;
|
|
67
69
|
this.namespace = namespace;
|
|
68
70
|
this.eventBus = eventBus;
|
|
69
71
|
this.adapter = adapter;
|
|
70
72
|
this.onlyError = onlyError;
|
|
71
73
|
this.defaultErrorPolicy = defaultErrorPolicy;
|
|
74
|
+
this.serde = serde;
|
|
75
|
+
this.registerToSerde();
|
|
76
|
+
}
|
|
77
|
+
registerToSerde() {
|
|
78
|
+
const transformer = new RateLimiterSerdeTransformer({
|
|
79
|
+
enableAsyncTracking: this.enableAsyncTracking,
|
|
80
|
+
namespace: this.namespace,
|
|
81
|
+
eventBus: this.eventBus,
|
|
82
|
+
adapter: this.adapter,
|
|
83
|
+
onlyError: this.onlyError,
|
|
84
|
+
errorPolicy: this.defaultErrorPolicy,
|
|
85
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
86
|
+
});
|
|
87
|
+
for (const serde of resolveOneOrMore(this.serde)) {
|
|
88
|
+
serde.registerCustom(transformer, CORE);
|
|
89
|
+
}
|
|
72
90
|
}
|
|
73
91
|
addListener(eventName, listener) {
|
|
74
92
|
return this.eventBus.addListener(eventName, listener);
|
|
@@ -98,6 +116,8 @@ export class RateLimiterProvider {
|
|
|
98
116
|
key: this.namespace.create(key),
|
|
99
117
|
errorPolicy,
|
|
100
118
|
onlyError,
|
|
119
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
120
|
+
namespace: this.namespace,
|
|
101
121
|
});
|
|
102
122
|
}
|
|
103
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIN,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module RateLimiter
|
|
3
|
+
*/
|
|
4
|
+
import { type IEventBus } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
|
+
import { type IRateLimiterAdapter, type RateLimiterEventMap } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
+
import { RateLimiter, type ISerializedRateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
|
|
8
|
+
import { type ISerdeTransformer } from "../../../../serde/contracts/_module.js";
|
|
9
|
+
import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export type RateLimiterSerdeTransformerSettings = {
|
|
14
|
+
adapter: IRateLimiterAdapter;
|
|
15
|
+
namespace: INamespace;
|
|
16
|
+
errorPolicy: ErrorPolicy;
|
|
17
|
+
onlyError: boolean;
|
|
18
|
+
eventBus: IEventBus<RateLimiterEventMap>;
|
|
19
|
+
serdeTransformerName: string;
|
|
20
|
+
enableAsyncTracking: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare class RateLimiterSerdeTransformer implements ISerdeTransformer<RateLimiter, ISerializedRateLimiter> {
|
|
26
|
+
private readonly adapter;
|
|
27
|
+
private readonly namespace;
|
|
28
|
+
private readonly errorPolicy;
|
|
29
|
+
private readonly eventBus;
|
|
30
|
+
private readonly serdeTransformerName;
|
|
31
|
+
private readonly enableAsyncTracking;
|
|
32
|
+
private readonly onlyError;
|
|
33
|
+
constructor(settings: RateLimiterSerdeTransformerSettings);
|
|
34
|
+
get name(): OneOrMore<string>;
|
|
35
|
+
isApplicable(value: unknown): value is RateLimiter;
|
|
36
|
+
deserialize(serializedValue: ISerializedRateLimiter): RateLimiter;
|
|
37
|
+
serialize(deserializedValue: RateLimiter): ISerializedRateLimiter;
|
|
38
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module RateLimiter
|
|
3
|
+
*/
|
|
4
|
+
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
6
|
+
import {} from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
+
import { RateLimiter, } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
|
|
8
|
+
import {} from "../../../../serde/contracts/_module.js";
|
|
9
|
+
import { getConstructorName, } from "../../../../utilities/_module.js";
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export class RateLimiterSerdeTransformer {
|
|
14
|
+
adapter;
|
|
15
|
+
namespace;
|
|
16
|
+
errorPolicy;
|
|
17
|
+
eventBus;
|
|
18
|
+
serdeTransformerName;
|
|
19
|
+
enableAsyncTracking;
|
|
20
|
+
onlyError;
|
|
21
|
+
constructor(settings) {
|
|
22
|
+
const { adapter, namespace, eventBus, serdeTransformerName, enableAsyncTracking, errorPolicy, onlyError, } = settings;
|
|
23
|
+
this.onlyError = onlyError;
|
|
24
|
+
this.enableAsyncTracking = enableAsyncTracking;
|
|
25
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
26
|
+
this.adapter = adapter;
|
|
27
|
+
this.namespace = namespace;
|
|
28
|
+
this.eventBus = eventBus;
|
|
29
|
+
this.errorPolicy = errorPolicy;
|
|
30
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
31
|
+
}
|
|
32
|
+
get name() {
|
|
33
|
+
return [
|
|
34
|
+
"rateLimiter",
|
|
35
|
+
this.serdeTransformerName,
|
|
36
|
+
getConstructorName(this.adapter),
|
|
37
|
+
this.namespace.toString(),
|
|
38
|
+
].filter((str) => str !== "");
|
|
39
|
+
}
|
|
40
|
+
isApplicable(value) {
|
|
41
|
+
const isRateLimiter = value instanceof RateLimiter &&
|
|
42
|
+
getConstructorName(value) === RateLimiter.name;
|
|
43
|
+
if (!isRateLimiter) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
const isSerdTransformerNameMathcing = this.serdeTransformerName ===
|
|
47
|
+
value._internal_getSerdeTransformerName();
|
|
48
|
+
const isNamespaceMatching = this.namespace.toString() ===
|
|
49
|
+
value._internal_getNamespace().toString();
|
|
50
|
+
const isAdapterMatching = getConstructorName(this.adapter) ===
|
|
51
|
+
getConstructorName(value._internal_getAdapter());
|
|
52
|
+
return (isSerdTransformerNameMathcing &&
|
|
53
|
+
isNamespaceMatching &&
|
|
54
|
+
isAdapterMatching);
|
|
55
|
+
}
|
|
56
|
+
deserialize(serializedValue) {
|
|
57
|
+
const { key, limit } = serializedValue;
|
|
58
|
+
const keyObj = this.namespace.create(key);
|
|
59
|
+
return new RateLimiter({
|
|
60
|
+
enableAsyncTracking: this.enableAsyncTracking,
|
|
61
|
+
eventDispatcher: this.eventBus,
|
|
62
|
+
adapter: this.adapter,
|
|
63
|
+
key: keyObj,
|
|
64
|
+
limit,
|
|
65
|
+
onlyError: this.onlyError,
|
|
66
|
+
errorPolicy: this.errorPolicy,
|
|
67
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
68
|
+
namespace: this.namespace,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
serialize(deserializedValue) {
|
|
72
|
+
return RateLimiter._internal_serialize(deserializedValue);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=rate-limiter-serde-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.ts"],"names":[],"mappings":"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"}
|