@daiso-tech/core 0.35.4 → 0.37.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 +22 -54
- package/dist/async/backof-policies/_shared.d.ts +8 -2
- package/dist/async/backof-policies/_shared.js +0 -1
- package/dist/async/backof-policies/_shared.js.map +1 -1
- package/dist/async/backof-policies/constant-backoff-policy/constant-backoff-policy.d.ts +3 -3
- package/dist/async/backof-policies/constant-backoff-policy/constant-backoff-policy.js +10 -4
- package/dist/async/backof-policies/constant-backoff-policy/constant-backoff-policy.js.map +1 -1
- package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.d.ts +3 -3
- package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js +10 -4
- package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +1 -1
- package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.d.ts +3 -3
- package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.js +10 -4
- package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.js.map +1 -1
- package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.d.ts +3 -3
- package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js +10 -4
- package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +1 -1
- package/dist/async/middlewares/_shared.d.ts +6 -1
- package/dist/async/middlewares/_shared.js +11 -1
- package/dist/async/middlewares/_shared.js.map +1 -1
- package/dist/async/middlewares/fallback/fallback.middleware.d.ts +3 -3
- package/dist/async/middlewares/fallback/fallback.middleware.js +3 -2
- package/dist/async/middlewares/fallback/fallback.middleware.js.map +1 -1
- package/dist/async/middlewares/hedging/_shared.d.ts +7 -7
- package/dist/async/middlewares/hedging/concurrent-hedging/concurrent-hedging.middleware.js +7 -7
- package/dist/async/middlewares/hedging/concurrent-hedging/concurrent-hedging.middleware.js.map +1 -1
- package/dist/async/middlewares/hedging/sequential-hedging/sequential-hedging.middleware.js +6 -6
- package/dist/async/middlewares/hedging/sequential-hedging/sequential-hedging.middleware.js.map +1 -1
- package/dist/async/middlewares/observe/observe.middleware.d.ts +4 -4
- package/dist/async/middlewares/retry/retry.middleware.d.ts +5 -4
- package/dist/async/middlewares/retry/retry.middleware.js +10 -10
- package/dist/async/middlewares/retry/retry.middleware.js.map +1 -1
- package/dist/async/middlewares/timeout/timeout.middleware.d.ts +4 -2
- package/dist/async/middlewares/timeout/timeout.middleware.js +3 -1
- package/dist/async/middlewares/timeout/timeout.middleware.js.map +1 -1
- package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +1 -1
- package/dist/async/utilities/lazy-promise/lazy-promise.js +1 -1
- package/dist/async/utilities/promise-queue/promise-queue.js.map +1 -1
- package/dist/cache/contracts/cache-factory.contract.d.ts +2 -2
- 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/implementations/adapters/_module-exports.d.ts +1 -2
- package/dist/cache/implementations/adapters/_module-exports.js +1 -2
- package/dist/cache/implementations/adapters/_module-exports.js.map +1 -1
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +41 -16
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +102 -57
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +4 -1
- package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/cache.d.ts +27 -11
- package/dist/cache/implementations/derivables/cache/cache.js +38 -34
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +15 -47
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +19 -45
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/cache/implementations/test-utilities/cache.test-suite.d.ts +4 -5
- package/dist/cache/implementations/test-utilities/cache.test-suite.js +4 -5
- package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
- package/dist/collection/contracts/async-collection.contract.d.ts +127 -121
- package/dist/collection/contracts/collection.contract.d.ts +126 -120
- package/dist/collection/contracts/collection.errors.d.ts +3 -3
- package/dist/collection/contracts/collection.errors.js +1 -1
- package/dist/collection/contracts/collection.errors.js.map +1 -1
- package/dist/collection/implementations/_shared.d.ts +4 -4
- package/dist/collection/implementations/_shared.js +2 -2
- package/dist/collection/implementations/_shared.js.map +1 -1
- package/dist/collection/implementations/async-iterable-collection/_shared/_module.d.ts +1 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/_module.js +1 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/_module.js.map +1 -1
- package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.d.ts +7 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js +17 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js.map +1 -0
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +15 -13
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +19 -16
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/collection/implementations/iterable-collection/_shared/_module.d.ts +1 -0
- package/dist/collection/implementations/iterable-collection/_shared/_module.js +1 -0
- package/dist/collection/implementations/iterable-collection/_shared/_module.js.map +1 -1
- package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.d.ts +7 -0
- package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js +21 -0
- package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js.map +1 -0
- package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +14 -12
- package/dist/collection/implementations/iterable-collection/iterable-collection.js +16 -13
- package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/collection/implementations/list-collection/list-collection.d.ts +14 -12
- package/dist/collection/implementations/list-collection/list-collection.js +26 -13
- package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/event-bus/contracts/event-bus-factory.contract.d.ts +2 -2
- package/dist/event-bus/contracts/event-bus.contract.d.ts +2 -2
- package/dist/event-bus/contracts/event-bus.errors.d.ts +3 -3
- package/dist/event-bus/contracts/event-bus.errors.js +1 -1
- package/dist/event-bus/contracts/event-bus.errors.js.map +1 -1
- package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +1 -1
- package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +1 -1
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +46 -9
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +64 -22
- 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 +12 -41
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +15 -35
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/lock/contracts/lock.errors.d.ts +2 -2
- package/dist/lock/contracts/lock.errors.js.map +1 -1
- package/dist/lock/implementations/adapters/_module-exports.d.ts +1 -2
- package/dist/lock/implementations/adapters/_module-exports.js +1 -2
- package/dist/lock/implementations/adapters/_module-exports.js.map +1 -1
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +40 -15
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +75 -34
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +6 -3
- package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +1 -1
- package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +22 -18
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +20 -22
- 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 +3 -3
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +12 -6
- 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 -2
- package/dist/lock/implementations/derivables/lock-provider/lock.js +16 -18
- 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 +6 -50
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +10 -54
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +1 -9
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +1 -9
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
- package/dist/serde/contracts/flexible-serde.contract.d.ts +9 -2
- package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +1 -1
- package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
- package/dist/utilities/classes/_module.d.ts +1 -1
- package/dist/utilities/classes/_module.js +1 -1
- package/dist/utilities/classes/_module.js.map +1 -1
- package/dist/utilities/classes/hooks/hooks.d.ts +2 -2
- package/dist/utilities/classes/hooks/hooks.js +2 -2
- package/dist/utilities/classes/namespace/_module.d.ts +1 -0
- package/dist/utilities/classes/namespace/_module.js +2 -0
- package/dist/utilities/classes/namespace/_module.js.map +1 -0
- package/dist/utilities/classes/{key-prefixer/key-prefixer.d.ts → namespace/namespace.d.ts} +38 -17
- package/dist/utilities/classes/{key-prefixer/key-prefixer.js → namespace/namespace.js} +51 -19
- package/dist/utilities/classes/namespace/namespace.js.map +1 -0
- package/dist/utilities/classes/time-span/time-span.d.ts +1 -2
- package/dist/utilities/classes/time-span/time-span.js +1 -4
- package/dist/utilities/classes/time-span/time-span.js.map +1 -1
- package/dist/utilities/functions/_module-exports.d.ts +2 -1
- package/dist/utilities/functions/_module-exports.js +2 -1
- package/dist/utilities/functions/_module-exports.js.map +1 -1
- package/dist/utilities/functions/lazy.d.ts +4 -0
- package/dist/utilities/functions/lazy.js +9 -3
- package/dist/utilities/functions/lazy.js.map +1 -1
- package/dist/utilities/functions/result.d.ts +11 -0
- package/dist/utilities/functions/result.js +15 -0
- package/dist/utilities/functions/result.js.map +1 -0
- package/dist/utilities/functions/validate.d.ts +8 -0
- package/dist/utilities/functions/validate.js +17 -0
- package/dist/utilities/functions/validate.js.map +1 -0
- package/dist/utilities/types/factory.type.d.ts +13 -18
- package/dist/utilities/types/result.type.d.ts +11 -1
- package/package.json +15 -11
- package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
- package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -2
- package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +0 -1
- package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +0 -61
- package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -95
- package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +0 -1
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -2
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +0 -1
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +0 -59
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -94
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +0 -1
- package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +0 -1
- package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.js +0 -2
- package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +0 -1
- package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +0 -60
- package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +0 -84
- package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +0 -1
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +0 -1
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.js +0 -2
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +0 -1
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +0 -59
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +0 -83
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +0 -1
- package/dist/utilities/classes/key-prefixer/_module.d.ts +0 -1
- package/dist/utilities/classes/key-prefixer/_module.js +0 -2
- package/dist/utilities/classes/key-prefixer/_module.js.map +0 -1
- package/dist/utilities/classes/key-prefixer/key-prefixer.js.map +0 -1
- package/dist/utilities/functions/factory.d.ts +0 -44
- package/dist/utilities/functions/factory.js +0 -80
- package/dist/utilities/functions/factory.js.map +0 -1
|
@@ -2,19 +2,27 @@
|
|
|
2
2
|
* @module Lock
|
|
3
3
|
*/
|
|
4
4
|
import { TimeSpan, type Factory, type AsyncLazy } from "../../../../utilities/_module-exports.js";
|
|
5
|
-
import {
|
|
5
|
+
import { Namespace, type OneOrMore } from "../../../../utilities/_module-exports.js";
|
|
6
6
|
import type { IDatabaseLockAdapter, LockEventMap } from "../../../../lock/contracts/_module-exports.js";
|
|
7
7
|
import { type ILock, type LockProviderCreateSettings, type ILockProvider, type ILockAdapter } from "../../../../lock/contracts/_module-exports.js";
|
|
8
8
|
import { LazyPromise } from "../../../../async/_module-exports.js";
|
|
9
9
|
import type { EventListener, IEventBus, Unsubscribe } from "../../../../event-bus/contracts/_module-exports.js";
|
|
10
|
-
import type {
|
|
10
|
+
import type { ISerderRegister } from "../../../../serde/contracts/_module-exports.js";
|
|
11
11
|
/**
|
|
12
12
|
*
|
|
13
13
|
* IMPORT_PATH: `"@daiso-tech/core/lock"`
|
|
14
14
|
* @group Derivables
|
|
15
15
|
*/
|
|
16
16
|
export type LockProviderSettingsBase = {
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @default
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { Namespace } from "@daiso-tech/core/utilities";
|
|
21
|
+
*
|
|
22
|
+
* new Namespace(["@", "lock"])
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
namespace?: Namespace;
|
|
18
26
|
/**
|
|
19
27
|
* You can pass a {@link Factory | `Factory`} of {@link LazyPromise| `LazyPromise`} to configure default settings for all {@link LazyPromise| `LazyPromise`} instances used in the `LockProvider` class.
|
|
20
28
|
* @default
|
|
@@ -25,7 +33,7 @@ export type LockProviderSettingsBase = {
|
|
|
25
33
|
* ```
|
|
26
34
|
*/
|
|
27
35
|
lazyPromiseFactory?: Factory<AsyncLazy<any>, LazyPromise<any>>;
|
|
28
|
-
serde: OneOrMore<
|
|
36
|
+
serde: OneOrMore<ISerderRegister>;
|
|
29
37
|
/**
|
|
30
38
|
* @default {""}
|
|
31
39
|
*/
|
|
@@ -39,10 +47,8 @@ export type LockProviderSettingsBase = {
|
|
|
39
47
|
* ```ts
|
|
40
48
|
* import { EventBus } from "@daiso-tech/core/event-bus";
|
|
41
49
|
* import { MemoryEventBusAdapter } from "@daiso-tech/core/event-bus/adapters";
|
|
42
|
-
* import { KeyPrefixer } from "@daiso-tech/core/utilities";
|
|
43
50
|
*
|
|
44
51
|
* new EventBus({
|
|
45
|
-
* keyPrefixer: new KeyPrefixer("event-bus"),
|
|
46
52
|
* adapter: new MemoryEventBusAdapter()
|
|
47
53
|
* })
|
|
48
54
|
* ```
|
|
@@ -99,7 +105,7 @@ export type LockProviderSettings = LockProviderSettingsBase & {
|
|
|
99
105
|
*
|
|
100
106
|
* Note the {@link ILock | `ILock`} instances created by the `LockProvider` class are serializable and deserializable,
|
|
101
107
|
* allowing them to be seamlessly transferred across different servers, processes, and databases.
|
|
102
|
-
* This can be done directly using {@link
|
|
108
|
+
* This can be done directly using {@link ISerderRegister | `ISerderRegister`} or indirectly through components that rely on {@link ISerderRegister | `ISerderRegister`} internally.
|
|
103
109
|
*
|
|
104
110
|
* IMPORT_PATH: `"@daiso-tech/core/lock"`
|
|
105
111
|
* @group Derivables
|
|
@@ -108,7 +114,7 @@ export declare class LockProvider implements ILockProvider {
|
|
|
108
114
|
private lockStore;
|
|
109
115
|
private readonly eventBus;
|
|
110
116
|
private readonly adapter;
|
|
111
|
-
private readonly
|
|
117
|
+
private readonly namespace;
|
|
112
118
|
private readonly createOwnerId;
|
|
113
119
|
private readonly defaultTtl;
|
|
114
120
|
private readonly defaultBlockingInterval;
|
|
@@ -122,7 +128,6 @@ export declare class LockProvider implements ILockProvider {
|
|
|
122
128
|
* ```ts
|
|
123
129
|
* import { SqliteLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
124
130
|
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
125
|
-
* import { KeyPrefixer } from "@daiso-tech/core/utilities";
|
|
126
131
|
* import { Serde } from "@daiso-tech/core/serde";
|
|
127
132
|
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
|
|
128
133
|
* import Sqlite from "better-sqlite3";
|
|
@@ -136,7 +141,6 @@ export declare class LockProvider implements ILockProvider {
|
|
|
136
141
|
*
|
|
137
142
|
* const serde = new Serde(new SuperJsonSerdeAdapter())
|
|
138
143
|
* const lockProvider = new LockProvider({
|
|
139
|
-
* keyPrefixer: new KeyPrefixer("lock"),
|
|
140
144
|
* serde,
|
|
141
145
|
* adapter: lockAdapter,
|
|
142
146
|
* });
|
|
@@ -145,32 +149,32 @@ export declare class LockProvider implements ILockProvider {
|
|
|
145
149
|
constructor(settings: LockProviderSettings);
|
|
146
150
|
private registerToSerde;
|
|
147
151
|
/**
|
|
148
|
-
* You can listen to the following {@link
|
|
152
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
149
153
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
150
154
|
*/
|
|
151
155
|
addListener<TEventName extends keyof LockEventMap>(eventName: TEventName, listener: EventListener<LockEventMap[TEventName]>): LazyPromise<void>;
|
|
152
156
|
/**
|
|
153
|
-
* You can listen to the following {@link
|
|
157
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
154
158
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
155
159
|
*/
|
|
156
160
|
removeListener<TEventName extends keyof LockEventMap>(eventName: TEventName, listener: EventListener<LockEventMap[TEventName]>): LazyPromise<void>;
|
|
157
161
|
/**
|
|
158
|
-
* You can listen to the following {@link
|
|
162
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
159
163
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
160
164
|
*/
|
|
161
165
|
listenOnce<TEventName extends keyof LockEventMap>(eventName: TEventName, listener: EventListener<LockEventMap[TEventName]>): LazyPromise<void>;
|
|
162
166
|
/**
|
|
163
|
-
* You can listen to the following {@link
|
|
167
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
164
168
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
165
169
|
*/
|
|
166
170
|
asPromise<TEventName extends keyof LockEventMap>(eventName: TEventName): LazyPromise<LockEventMap[TEventName]>;
|
|
167
171
|
/**
|
|
168
|
-
* You can listen to the following {@link
|
|
172
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
169
173
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
170
174
|
*/
|
|
171
175
|
subscribeOnce<TEventName extends keyof LockEventMap>(eventName: TEventName, listener: EventListener<LockEventMap[TEventName]>): LazyPromise<Unsubscribe>;
|
|
172
176
|
/**
|
|
173
|
-
* You can listen to the following {@link
|
|
177
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
174
178
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
175
179
|
*/
|
|
176
180
|
subscribe<TEventName extends keyof LockEventMap>(eventName: TEventName, listener: EventListener<LockEventMap[TEventName]>): LazyPromise<Unsubscribe>;
|
|
@@ -180,13 +184,13 @@ export declare class LockProvider implements ILockProvider {
|
|
|
180
184
|
* ```ts
|
|
181
185
|
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
182
186
|
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
183
|
-
* import {
|
|
187
|
+
* import { Namespace } from "@daiso-tech/core/utilities";
|
|
184
188
|
* import { Serde } from "@daiso-tech/core/serde";
|
|
185
189
|
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
|
|
186
190
|
*
|
|
187
191
|
* const lockProvider = new LockProvider({
|
|
188
192
|
* adapter: new MemoryLockAdapter(),
|
|
189
|
-
*
|
|
193
|
+
* namespace: new Namespace("lock"),
|
|
190
194
|
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
191
195
|
* });
|
|
192
196
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Lock
|
|
3
3
|
*/
|
|
4
|
-
import { TimeSpan, CORE,
|
|
5
|
-
import {
|
|
4
|
+
import { TimeSpan, CORE, resolveOneOrMore, resolveInvokable, } from "../../../../utilities/_module-exports.js";
|
|
5
|
+
import { Namespace } from "../../../../utilities/_module-exports.js";
|
|
6
6
|
import {} from "../../../../lock/contracts/_module-exports.js";
|
|
7
7
|
import { LazyPromise } from "../../../../async/_module-exports.js";
|
|
8
8
|
import { EventBus } from "../../../../event-bus/implementations/derivables/_module-exports.js";
|
|
@@ -18,7 +18,7 @@ import { LockSerdeTransformer } from "../../../../lock/implementations/derivable
|
|
|
18
18
|
*
|
|
19
19
|
* Note the {@link ILock | `ILock`} instances created by the `LockProvider` class are serializable and deserializable,
|
|
20
20
|
* allowing them to be seamlessly transferred across different servers, processes, and databases.
|
|
21
|
-
* This can be done directly using {@link
|
|
21
|
+
* This can be done directly using {@link ISerderRegister | `ISerderRegister`} or indirectly through components that rely on {@link ISerderRegister | `ISerderRegister`} internally.
|
|
22
22
|
*
|
|
23
23
|
* IMPORT_PATH: `"@daiso-tech/core/lock"`
|
|
24
24
|
* @group Derivables
|
|
@@ -27,7 +27,7 @@ export class LockProvider {
|
|
|
27
27
|
lockStore = {};
|
|
28
28
|
eventBus;
|
|
29
29
|
adapter;
|
|
30
|
-
|
|
30
|
+
namespace;
|
|
31
31
|
createOwnerId;
|
|
32
32
|
defaultTtl;
|
|
33
33
|
defaultBlockingInterval;
|
|
@@ -41,7 +41,6 @@ export class LockProvider {
|
|
|
41
41
|
* ```ts
|
|
42
42
|
* import { SqliteLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
43
43
|
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
44
|
-
* import { KeyPrefixer } from "@daiso-tech/core/utilities";
|
|
45
44
|
* import { Serde } from "@daiso-tech/core/serde";
|
|
46
45
|
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
|
|
47
46
|
* import Sqlite from "better-sqlite3";
|
|
@@ -55,15 +54,13 @@ export class LockProvider {
|
|
|
55
54
|
*
|
|
56
55
|
* const serde = new Serde(new SuperJsonSerdeAdapter())
|
|
57
56
|
* const lockProvider = new LockProvider({
|
|
58
|
-
* keyPrefixer: new KeyPrefixer("lock"),
|
|
59
57
|
* serde,
|
|
60
58
|
* adapter: lockAdapter,
|
|
61
59
|
* });
|
|
62
60
|
* ```
|
|
63
61
|
*/
|
|
64
62
|
constructor(settings) {
|
|
65
|
-
const { defaultTtl = TimeSpan.fromMinutes(5), defaultBlockingInterval = TimeSpan.fromSeconds(1), defaultBlockingTime = TimeSpan.fromMinutes(1), defaultRefreshTime = TimeSpan.fromMinutes(5), createOwnerId = () => v4(), serde,
|
|
66
|
-
keyPrefixer: new KeyPrefixer("events"),
|
|
63
|
+
const { defaultTtl = TimeSpan.fromMinutes(5), defaultBlockingInterval = TimeSpan.fromSeconds(1), defaultBlockingTime = TimeSpan.fromMinutes(1), defaultRefreshTime = TimeSpan.fromMinutes(5), createOwnerId = () => v4(), serde, namespace = new Namespace(["@", "lock"]), adapter, eventBus = new EventBus({
|
|
67
64
|
adapter: new MemoryEventBusAdapter(),
|
|
68
65
|
}), serdeTransformerName = "", lazyPromiseFactory = (invokable) => new LazyPromise(invokable), } = settings;
|
|
69
66
|
this.serde = serde;
|
|
@@ -71,10 +68,10 @@ export class LockProvider {
|
|
|
71
68
|
this.defaultBlockingTime = defaultBlockingTime;
|
|
72
69
|
this.defaultRefreshTime = defaultRefreshTime;
|
|
73
70
|
this.createOwnerId = createOwnerId;
|
|
74
|
-
this.
|
|
71
|
+
this.namespace = namespace;
|
|
75
72
|
this.defaultTtl = defaultTtl;
|
|
76
73
|
this.eventBus = eventBus;
|
|
77
|
-
this.lazyPromiseFactory =
|
|
74
|
+
this.lazyPromiseFactory = resolveInvokable(lazyPromiseFactory);
|
|
78
75
|
this.serdeTransformerName = serdeTransformerName;
|
|
79
76
|
if (isDatabaseLockAdapter(adapter)) {
|
|
80
77
|
this.adapter = new DatabaseLockAdapter(adapter);
|
|
@@ -92,7 +89,7 @@ export class LockProvider {
|
|
|
92
89
|
defaultBlockingTime: this.defaultBlockingTime,
|
|
93
90
|
defaultRefreshTime: this.defaultRefreshTime,
|
|
94
91
|
eventBus: this.eventBus,
|
|
95
|
-
|
|
92
|
+
namespace: this.namespace,
|
|
96
93
|
lockStore: this.lockStore,
|
|
97
94
|
serdeTransformerName: this.serdeTransformerName,
|
|
98
95
|
});
|
|
@@ -101,62 +98,62 @@ export class LockProvider {
|
|
|
101
98
|
}
|
|
102
99
|
}
|
|
103
100
|
/**
|
|
104
|
-
* You can listen to the following {@link
|
|
101
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
105
102
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
106
103
|
*/
|
|
107
104
|
addListener(eventName, listener) {
|
|
108
105
|
return this.eventBus.addListener(eventName, listener);
|
|
109
106
|
}
|
|
110
107
|
/**
|
|
111
|
-
* You can listen to the following {@link
|
|
108
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
112
109
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
113
110
|
*/
|
|
114
111
|
removeListener(eventName, listener) {
|
|
115
112
|
return this.eventBus.removeListener(eventName, listener);
|
|
116
113
|
}
|
|
117
114
|
/**
|
|
118
|
-
* You can listen to the following {@link
|
|
115
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
119
116
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
120
117
|
*/
|
|
121
118
|
listenOnce(eventName, listener) {
|
|
122
119
|
return this.eventBus.listenOnce(eventName, listener);
|
|
123
120
|
}
|
|
124
121
|
/**
|
|
125
|
-
* You can listen to the following {@link
|
|
122
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
126
123
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
127
124
|
*/
|
|
128
125
|
asPromise(eventName) {
|
|
129
126
|
return this.eventBus.asPromise(eventName);
|
|
130
127
|
}
|
|
131
128
|
/**
|
|
132
|
-
* You can listen to the following {@link
|
|
129
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
133
130
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
134
131
|
*/
|
|
135
132
|
subscribeOnce(eventName, listener) {
|
|
136
133
|
return this.eventBus.subscribeOnce(eventName, listener);
|
|
137
134
|
}
|
|
138
135
|
/**
|
|
139
|
-
* You can listen to the following {@link
|
|
136
|
+
* You can listen to the following {@link LockEventMap | `LockEventMap`} of all {@link ILock | `ILock`} instances created by the {@link ILockProvider | `ILockProvider`}.
|
|
140
137
|
* To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
|
|
141
138
|
*/
|
|
142
139
|
subscribe(eventName, listener) {
|
|
143
140
|
return this.eventBus.subscribe(eventName, listener);
|
|
144
141
|
}
|
|
145
142
|
createLazyPromise(asyncFn) {
|
|
146
|
-
return
|
|
143
|
+
return this.lazyPromiseFactory(asyncFn);
|
|
147
144
|
}
|
|
148
145
|
/**
|
|
149
146
|
* @example
|
|
150
147
|
* ```ts
|
|
151
148
|
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
152
149
|
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
153
|
-
* import {
|
|
150
|
+
* import { Namespace } from "@daiso-tech/core/utilities";
|
|
154
151
|
* import { Serde } from "@daiso-tech/core/serde";
|
|
155
152
|
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
|
|
156
153
|
*
|
|
157
154
|
* const lockProvider = new LockProvider({
|
|
158
155
|
* adapter: new MemoryLockAdapter(),
|
|
159
|
-
*
|
|
156
|
+
* namespace: new Namespace("lock"),
|
|
160
157
|
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
161
158
|
* });
|
|
162
159
|
*
|
|
@@ -165,15 +162,16 @@ export class LockProvider {
|
|
|
165
162
|
*/
|
|
166
163
|
create(key, settings = {}) {
|
|
167
164
|
const { ttl = this.defaultTtl, owner = this.createOwnerId() } = settings;
|
|
168
|
-
const keyObj = this.
|
|
165
|
+
const keyObj = this.namespace._getInternal().create(key);
|
|
169
166
|
return new Lock({
|
|
170
167
|
adapter: this.adapter,
|
|
171
168
|
createLazyPromise: (asyncFn) => this.createLazyPromise(asyncFn),
|
|
172
|
-
lockState: new LockState(this.lockStore, keyObj.
|
|
169
|
+
lockState: new LockState(this.lockStore, keyObj.namespaced),
|
|
173
170
|
eventDispatcher: this.eventBus,
|
|
174
171
|
key: keyObj,
|
|
175
172
|
owner,
|
|
176
173
|
ttl,
|
|
174
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
177
175
|
expirationInMs: null,
|
|
178
176
|
defaultBlockingInterval: this.defaultBlockingInterval,
|
|
179
177
|
defaultBlockingTime: this.defaultBlockingTime,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-provider.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,QAAQ,EACR,IAAI,EAIJ,
|
|
1
|
+
{"version":3,"file":"lock-provider.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { Lock, type ISerializedLock } from "../../../../lock/implementations/der
|
|
|
6
6
|
import type { OneOrMore } from "../../../../utilities/_module-exports.js";
|
|
7
7
|
import type { ILockAdapter, LockEventMap } from "../../../../lock/contracts/_module-exports.js";
|
|
8
8
|
import { type ILockStore } from "../../../../lock/implementations/derivables/lock-provider/lock-state.js";
|
|
9
|
-
import { TimeSpan, type
|
|
9
|
+
import { TimeSpan, type Namespace } from "../../../../utilities/_module-exports.js";
|
|
10
10
|
import type { LazyPromise } from "../../../../async/_module-exports.js";
|
|
11
11
|
import type { IEventBus } from "../../../../event-bus/contracts/_module-exports.js";
|
|
12
12
|
/**
|
|
@@ -15,7 +15,7 @@ import type { IEventBus } from "../../../../event-bus/contracts/_module-exports.
|
|
|
15
15
|
export type LockSerdeTransformerSettings = {
|
|
16
16
|
adapter: ILockAdapter;
|
|
17
17
|
lockStore: ILockStore;
|
|
18
|
-
|
|
18
|
+
namespace: Namespace;
|
|
19
19
|
createLazyPromise: <TValue = void>(asyncFn: () => PromiseLike<TValue>) => LazyPromise<TValue>;
|
|
20
20
|
defaultBlockingInterval: TimeSpan;
|
|
21
21
|
defaultBlockingTime: TimeSpan;
|
|
@@ -29,7 +29,7 @@ export type LockSerdeTransformerSettings = {
|
|
|
29
29
|
export declare class LockSerdeTransformer implements ISerdeTransformer<Lock, ISerializedLock> {
|
|
30
30
|
private readonly adapter;
|
|
31
31
|
private readonly lockStore;
|
|
32
|
-
private readonly
|
|
32
|
+
private readonly namespace;
|
|
33
33
|
private readonly createLazyPromise;
|
|
34
34
|
private readonly defaultBlockingInterval;
|
|
35
35
|
private readonly defaultBlockingTime;
|
|
@@ -10,7 +10,7 @@ import { getConstructorName, TimeSpan, } from "../../../../utilities/_module-exp
|
|
|
10
10
|
export class LockSerdeTransformer {
|
|
11
11
|
adapter;
|
|
12
12
|
lockStore;
|
|
13
|
-
|
|
13
|
+
namespace;
|
|
14
14
|
createLazyPromise;
|
|
15
15
|
defaultBlockingInterval;
|
|
16
16
|
defaultBlockingTime;
|
|
@@ -18,11 +18,11 @@ export class LockSerdeTransformer {
|
|
|
18
18
|
eventBus;
|
|
19
19
|
serdeTransformerName;
|
|
20
20
|
constructor(settings) {
|
|
21
|
-
const { adapter, lockStore,
|
|
21
|
+
const { adapter, lockStore, namespace, createLazyPromise, defaultBlockingInterval, defaultBlockingTime, defaultRefreshTime, eventBus, serdeTransformerName, } = settings;
|
|
22
22
|
this.serdeTransformerName = serdeTransformerName;
|
|
23
23
|
this.adapter = adapter;
|
|
24
24
|
this.lockStore = lockStore;
|
|
25
|
-
this.
|
|
25
|
+
this.namespace = namespace;
|
|
26
26
|
this.createLazyPromise = createLazyPromise;
|
|
27
27
|
this.defaultBlockingInterval = defaultBlockingInterval;
|
|
28
28
|
this.defaultBlockingTime = defaultBlockingTime;
|
|
@@ -30,6 +30,9 @@ export class LockSerdeTransformer {
|
|
|
30
30
|
this.eventBus = eventBus;
|
|
31
31
|
}
|
|
32
32
|
get name() {
|
|
33
|
+
if (this.serdeTransformerName) {
|
|
34
|
+
return ["lock", getConstructorName(this.adapter)];
|
|
35
|
+
}
|
|
33
36
|
return [
|
|
34
37
|
"lock",
|
|
35
38
|
this.serdeTransformerName,
|
|
@@ -37,18 +40,21 @@ export class LockSerdeTransformer {
|
|
|
37
40
|
];
|
|
38
41
|
}
|
|
39
42
|
isApplicable(value) {
|
|
40
|
-
return value instanceof Lock &&
|
|
43
|
+
return (value instanceof Lock &&
|
|
44
|
+
getConstructorName(value) === Lock.name &&
|
|
45
|
+
value.getSerdeTransformerName() === this.serdeTransformerName);
|
|
41
46
|
}
|
|
42
47
|
deserialize(serializedValue) {
|
|
43
48
|
const { key, owner, ttlInMs, expirationInMs } = serializedValue;
|
|
44
|
-
const keyObj = this.
|
|
49
|
+
const keyObj = this.namespace._getInternal().create(key);
|
|
45
50
|
return new Lock({
|
|
46
51
|
createLazyPromise: this.createLazyPromise,
|
|
47
52
|
adapter: this.adapter,
|
|
48
|
-
lockState: new LockState(this.lockStore, keyObj.
|
|
53
|
+
lockState: new LockState(this.lockStore, keyObj.namespaced),
|
|
49
54
|
eventDispatcher: this.eventBus,
|
|
50
55
|
key: keyObj,
|
|
51
56
|
owner,
|
|
57
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
52
58
|
ttl: ttlInMs ? TimeSpan.fromMilliseconds(ttlInMs) : null,
|
|
53
59
|
expirationInMs,
|
|
54
60
|
defaultBlockingInterval: this.defaultBlockingInterval,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-serde-transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,IAAI,GAEP,MAAM,yDAAyD,CAAC;AAMjE,OAAO,EACH,SAAS,GAEZ,MAAM,+DAA+D,CAAC;AACvE,OAAO,EACH,kBAAkB,EAClB,QAAQ,GAEX,MAAM,gCAAgC,CAAC;AAqBxC;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAGZ,OAAO,CAAe;IACtB,SAAS,CAAa;IACtB,
|
|
1
|
+
{"version":3,"file":"lock-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-serde-transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,IAAI,GAEP,MAAM,yDAAyD,CAAC;AAMjE,OAAO,EACH,SAAS,GAEZ,MAAM,+DAA+D,CAAC;AACvE,OAAO,EACH,kBAAkB,EAClB,QAAQ,GAEX,MAAM,gCAAgC,CAAC;AAqBxC;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAGZ,OAAO,CAAe;IACtB,SAAS,CAAa;IACtB,SAAS,CAAY;IACrB,iBAAiB,CAET;IACR,uBAAuB,CAAW;IAClC,mBAAmB,CAAW;IAC9B,kBAAkB,CAAW;IAC7B,QAAQ,CAA0B;IAClC,oBAAoB,CAAS;IAE9C,YAAY,QAAsC;QAC9C,MAAM,EACF,OAAO,EACP,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,GACvB,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACJ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO;YACH,MAAM;YACN,IAAI,CAAC,oBAAoB;YACzB,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;SACnC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,KAAc;QACvB,OAAO,CACH,KAAK,YAAY,IAAI;YACrB,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI;YACvC,KAAK,CAAC,uBAAuB,EAAE,KAAK,IAAI,CAAC,oBAAoB,CAChE,CAAC;IACN,CAAC;IAED,WAAW,CAAC,eAAgC;QACxC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEzD,OAAO,IAAI,IAAI,CAAC;YACZ,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3D,eAAe,EAAE,IAAI,CAAC,QAAQ;YAC9B,GAAG,EAAE,MAAM;YACX,KAAK;YACL,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACxD,cAAc;YACd,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,iBAAuB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;CACJ"}
|
|
@@ -22,6 +22,7 @@ export type ISerializedLock = {
|
|
|
22
22
|
*/
|
|
23
23
|
export type LockSettings = {
|
|
24
24
|
createLazyPromise: <TValue = void>(asyncFn: () => PromiseLike<TValue>) => LazyPromise<TValue>;
|
|
25
|
+
serdeTransformerName: string;
|
|
25
26
|
adapter: ILockAdapter;
|
|
26
27
|
lockState: LockState;
|
|
27
28
|
eventDispatcher: IEventDispatcher<LockEventMap>;
|
|
@@ -34,8 +35,7 @@ export type LockSettings = {
|
|
|
34
35
|
defaultRefreshTime: TimeSpan;
|
|
35
36
|
};
|
|
36
37
|
/**
|
|
37
|
-
*
|
|
38
|
-
* @group Derivables
|
|
38
|
+
* @internal
|
|
39
39
|
*/
|
|
40
40
|
export declare class Lock implements ILock {
|
|
41
41
|
/**
|
|
@@ -52,10 +52,12 @@ export declare class Lock implements ILock {
|
|
|
52
52
|
private readonly defaultBlockingInterval;
|
|
53
53
|
private readonly defaultBlockingTime;
|
|
54
54
|
private readonly defaultRefreshTime;
|
|
55
|
+
private readonly serdeTransformerName;
|
|
55
56
|
/**
|
|
56
57
|
* @internal
|
|
57
58
|
*/
|
|
58
59
|
constructor(settings: LockSettings);
|
|
60
|
+
getSerdeTransformerName(): string;
|
|
59
61
|
run<TValue = void>(asyncFn: AsyncLazy<TValue>): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
|
|
60
62
|
runOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>): LazyPromise<TValue>;
|
|
61
63
|
runBlocking<TValue = void>(asyncFn: AsyncLazy<TValue>, settings?: AquireBlockingSettings): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Lock
|
|
3
3
|
*/
|
|
4
|
-
import { resolveLazyable, } from "../../../../utilities/_module-exports.js";
|
|
4
|
+
import { resolveLazyable, resultSuccess, resultFailure, } from "../../../../utilities/_module-exports.js";
|
|
5
5
|
import { resolveOneOrMoreStr } from "../../../../utilities/_module-exports.js";
|
|
6
6
|
import { KeyAlreadyAcquiredLockError, LOCK_EVENTS, UnableToAquireLockError, UnableToReleaseLockError, UnownedRefreshLockError, UnownedReleaseLockError, } from "../../../../lock/contracts/_module-exports.js";
|
|
7
7
|
import {} from "../../../../lock/contracts/_module-exports.js";
|
|
8
8
|
import { LazyPromise } from "../../../../async/_module-exports.js";
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @group Derivables
|
|
10
|
+
* @internal
|
|
12
11
|
*/
|
|
13
12
|
export class Lock {
|
|
14
13
|
/**
|
|
@@ -32,11 +31,13 @@ export class Lock {
|
|
|
32
31
|
defaultBlockingInterval;
|
|
33
32
|
defaultBlockingTime;
|
|
34
33
|
defaultRefreshTime;
|
|
34
|
+
serdeTransformerName;
|
|
35
35
|
/**
|
|
36
36
|
* @internal
|
|
37
37
|
*/
|
|
38
38
|
constructor(settings) {
|
|
39
|
-
const { createLazyPromise, adapter, lockState, eventDispatcher, key, owner, ttl, expirationInMs, defaultBlockingInterval, defaultBlockingTime, defaultRefreshTime, } = settings;
|
|
39
|
+
const { createLazyPromise, adapter, lockState, eventDispatcher, key, owner, ttl, serdeTransformerName, expirationInMs, defaultBlockingInterval, defaultBlockingTime, defaultRefreshTime, } = settings;
|
|
40
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
40
41
|
this.createLazyPromise = createLazyPromise;
|
|
41
42
|
this.adapter = adapter;
|
|
42
43
|
this.lockState = lockState;
|
|
@@ -49,17 +50,17 @@ export class Lock {
|
|
|
49
50
|
this.defaultBlockingTime = defaultBlockingTime;
|
|
50
51
|
this.defaultRefreshTime = defaultRefreshTime;
|
|
51
52
|
}
|
|
53
|
+
getSerdeTransformerName() {
|
|
54
|
+
return this.serdeTransformerName;
|
|
55
|
+
}
|
|
52
56
|
run(asyncFn) {
|
|
53
57
|
return this.createLazyPromise(async () => {
|
|
54
58
|
try {
|
|
55
59
|
const hasAquired = await this.acquire();
|
|
56
60
|
if (!hasAquired) {
|
|
57
|
-
return
|
|
58
|
-
null,
|
|
59
|
-
new KeyAlreadyAcquiredLockError(`Key "${this.key.resolved}" already acquired`),
|
|
60
|
-
];
|
|
61
|
+
return resultFailure(new KeyAlreadyAcquiredLockError(`Key "${this.key.resolved}" already acquired`));
|
|
61
62
|
}
|
|
62
|
-
return
|
|
63
|
+
return resultSuccess(await resolveLazyable(asyncFn));
|
|
63
64
|
}
|
|
64
65
|
finally {
|
|
65
66
|
await this.release();
|
|
@@ -82,12 +83,9 @@ export class Lock {
|
|
|
82
83
|
try {
|
|
83
84
|
const hasAquired = await this.acquireBlocking(settings);
|
|
84
85
|
if (!hasAquired) {
|
|
85
|
-
return
|
|
86
|
-
null,
|
|
87
|
-
new KeyAlreadyAcquiredLockError(`Key "${this.key.resolved}" already acquired`),
|
|
88
|
-
];
|
|
86
|
+
return resultFailure(new KeyAlreadyAcquiredLockError(`Key "${this.key.resolved}" already acquired`));
|
|
89
87
|
}
|
|
90
|
-
return
|
|
88
|
+
return resultSuccess(await resolveLazyable(asyncFn));
|
|
91
89
|
}
|
|
92
90
|
finally {
|
|
93
91
|
await this.release();
|
|
@@ -110,7 +108,7 @@ export class Lock {
|
|
|
110
108
|
const prevState = this.lockState.get()?.getTime() ?? null;
|
|
111
109
|
try {
|
|
112
110
|
this.lockState.remove();
|
|
113
|
-
const hasAquired = await this.adapter.acquire(this.key.
|
|
111
|
+
const hasAquired = await this.adapter.acquire(this.key.namespaced, this.owner, this.ttl);
|
|
114
112
|
if (hasAquired) {
|
|
115
113
|
this.lockState.set(this.ttl);
|
|
116
114
|
const event = {
|
|
@@ -182,7 +180,7 @@ export class Lock {
|
|
|
182
180
|
return this.createLazyPromise(async () => {
|
|
183
181
|
const prevState = this.lockState.get()?.getTime() ?? null;
|
|
184
182
|
try {
|
|
185
|
-
const hasReleased = await this.adapter.release(this.key.
|
|
183
|
+
const hasReleased = await this.adapter.release(this.key.namespaced, this.owner);
|
|
186
184
|
if (hasReleased) {
|
|
187
185
|
this.lockState.remove();
|
|
188
186
|
const event = {
|
|
@@ -231,7 +229,7 @@ export class Lock {
|
|
|
231
229
|
return this.createLazyPromise(async () => {
|
|
232
230
|
const prevState = this.lockState.get()?.getTime() ?? null;
|
|
233
231
|
try {
|
|
234
|
-
await this.adapter.forceRelease(this.key.
|
|
232
|
+
await this.adapter.forceRelease(this.key.namespaced);
|
|
235
233
|
this.lockState.remove();
|
|
236
234
|
const event = {
|
|
237
235
|
key: this.key.resolved,
|
|
@@ -285,7 +283,7 @@ export class Lock {
|
|
|
285
283
|
return this.createLazyPromise(async () => {
|
|
286
284
|
const prevState = this.lockState.get()?.getTime() ?? null;
|
|
287
285
|
try {
|
|
288
|
-
const hasRefreshed = await this.adapter.refresh(this.key.
|
|
286
|
+
const hasRefreshed = await this.adapter.refresh(this.key.namespaced, this.owner, ttl);
|
|
289
287
|
if (hasRefreshed) {
|
|
290
288
|
const event = {
|
|
291
289
|
key: this.key.resolved,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock.ts"],"names":[],"mappings":"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"}
|