@daiso-tech/core 0.27.0 → 0.28.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 +10 -10
- package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +57 -19
- package/dist/async/utilities/lazy-promise/lazy-promise.js +93 -52
- package/dist/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
- package/dist/async/utilities/retry/retry-or-fail.d.ts +2 -0
- package/dist/async/utilities/retry/retry-or-fail.js.map +1 -1
- package/dist/cache/contracts/cache.contract.d.ts +98 -14
- package/dist/cache/implementations/adapters/_module-exports.d.ts +1 -0
- package/dist/cache/implementations/adapters/_module-exports.js +1 -0
- package/dist/cache/implementations/adapters/_module-exports.js.map +1 -1
- package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.d.ts +1 -0
- package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.js +2 -0
- package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.js.map +1 -0
- package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +23 -0
- package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +41 -0
- package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -0
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +2 -3
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/cache.d.ts +250 -45
- package/dist/cache/implementations/derivables/cache/cache.js +256 -28
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +20 -17
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +33 -19
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +4 -20
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +7 -4
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +1 -1
- package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +1 -1
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +21 -36
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +24 -17
- 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 +57 -14
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +61 -13
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/lock/contracts/lock-provider.contract.d.ts +19 -5
- package/dist/lock/contracts/lock.contract.d.ts +37 -8
- package/dist/lock/implementations/adapters/_module-exports.d.ts +1 -0
- package/dist/lock/implementations/adapters/_module-exports.js +1 -0
- package/dist/lock/implementations/adapters/_module-exports.js.map +1 -1
- package/dist/lock/implementations/adapters/no-op-lock-adapter/_module.d.ts +1 -0
- package/dist/lock/implementations/adapters/no-op-lock-adapter/_module.js +2 -0
- package/dist/lock/implementations/adapters/no-op-lock-adapter/_module.js.map +1 -0
- package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +17 -0
- package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +24 -0
- package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js.map +1 -0
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +2 -3
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +130 -62
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +134 -44
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +238 -0
- package/dist/lock/implementations/derivables/lock-provider/lock.js +258 -0
- 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 +75 -9
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +85 -7
- 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.js +162 -8
- package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
- package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.d.ts +1 -0
- package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js +1 -0
- package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js.map +1 -1
- package/dist/utilities/_module-exports.d.ts +1 -1
- package/dist/utilities/_module-exports.js +1 -1
- package/dist/utilities/_module-exports.js.map +1 -1
- package/dist/utilities/classes/key-prefixer/key-prefixer.js +1 -1
- package/dist/utilities/classes/key-prefixer/key-prefixer.js.map +1 -1
- package/dist/utilities/{_constants.d.ts → constants.d.ts} +0 -3
- package/dist/utilities/constants.js +5 -0
- package/dist/utilities/constants.js.map +1 -0
- package/dist/utilities/contracts/_module.d.ts +2 -1
- package/dist/utilities/contracts/_module.js +2 -1
- package/dist/utilities/contracts/_module.js.map +1 -1
- package/dist/utilities/contracts/sqlite-database.contract.d.ts +26 -0
- package/dist/utilities/contracts/sqlite-database.contract.js +5 -0
- package/dist/utilities/contracts/sqlite-database.contract.js.map +1 -0
- package/dist/utilities/functions.d.ts +4 -0
- package/dist/utilities/functions.js +10 -4
- package/dist/utilities/functions.js.map +1 -1
- package/dist/utilities/types.d.ts +4 -4
- package/package.json +1 -1
- package/dist/utilities/_constants.js +0 -8
- package/dist/utilities/_constants.js.map +0 -1
|
@@ -61,20 +61,258 @@ export declare class Lock implements ILock {
|
|
|
61
61
|
* @internal
|
|
62
62
|
*/
|
|
63
63
|
constructor(settings: LockSettings);
|
|
64
|
+
/**
|
|
65
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
66
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
67
|
+
*/
|
|
64
68
|
addListener<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
71
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
72
|
+
*/
|
|
65
73
|
addListenerMany<TEventClassArr extends EventClass<LockEvents>[]>(events: [...TEventClassArr], listener: Invokable<EventInstance<Items<TEventClassArr>>>): LazyPromise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
76
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
77
|
+
*/
|
|
66
78
|
removeListener<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
81
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
82
|
+
*/
|
|
67
83
|
removeListenerMany<TEventClassArr extends EventClass<LockEvents>[]>(events: [...TEventClassArr], listener: Invokable<EventInstance<Items<TEventClassArr>>>): LazyPromise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
86
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
87
|
+
*/
|
|
68
88
|
listenOnce<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
91
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
92
|
+
*/
|
|
69
93
|
asPromise<TEventClass extends EventClass<LockEvents>>(event: TEventClass): LazyPromise<EventInstance<TEventClass>>;
|
|
94
|
+
/**
|
|
95
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
96
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
97
|
+
*/
|
|
70
98
|
subscribe<TEventClass extends EventClass<LockEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
|
|
99
|
+
/**
|
|
100
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
101
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
102
|
+
*/
|
|
71
103
|
subscribeMany<TEventClassArr extends EventClass<LockEvents>[]>(events: [...TEventClassArr], listener: Invokable<EventInstance<Items<TEventClassArr>>>): LazyPromise<Unsubscribe>;
|
|
104
|
+
/**
|
|
105
|
+
* You can pass in a sync function or async function.
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
109
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
110
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
111
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
112
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
113
|
+
*
|
|
114
|
+
* const lockProvider = new LockProvider({
|
|
115
|
+
* adapter: new MemoryLockAdapter(),
|
|
116
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
117
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
118
|
+
* });
|
|
119
|
+
*
|
|
120
|
+
* const lock = lockProvider.create("a");
|
|
121
|
+
*
|
|
122
|
+
* await lock.run(async () => {
|
|
123
|
+
* console.log("START");
|
|
124
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
125
|
+
* console.log("END");
|
|
126
|
+
* });
|
|
127
|
+
* ```
|
|
128
|
+
*
|
|
129
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
130
|
+
* @example
|
|
131
|
+
* ```ts
|
|
132
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
133
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
134
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
135
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
136
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
137
|
+
*
|
|
138
|
+
* const lockProvider = new LockProvider({
|
|
139
|
+
* adapter: new MemoryLockAdapter(),
|
|
140
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
141
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
142
|
+
* });
|
|
143
|
+
*
|
|
144
|
+
* const lock = lockProvider.create("a");
|
|
145
|
+
*
|
|
146
|
+
* await lock.run(
|
|
147
|
+
* new LazyPromise(async () => {
|
|
148
|
+
* console.log("START");
|
|
149
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
150
|
+
* console.log("END");
|
|
151
|
+
* })
|
|
152
|
+
* );
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
72
155
|
run<TValue = void>(asyncFn: LazyPromiseable<TValue>): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
|
|
156
|
+
/**
|
|
157
|
+
* You can pass in a sync function or async function.
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
161
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
162
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
163
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
164
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
165
|
+
*
|
|
166
|
+
* const lockProvider = new LockProvider({
|
|
167
|
+
* adapter: new MemoryLockAdapter(),
|
|
168
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
169
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
170
|
+
* });
|
|
171
|
+
*
|
|
172
|
+
* const lock = lockProvider.create("a");
|
|
173
|
+
*
|
|
174
|
+
* await lock.runOrFail(async () => {
|
|
175
|
+
* console.log("START");
|
|
176
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
177
|
+
* console.log("END");
|
|
178
|
+
* });
|
|
179
|
+
* ```
|
|
180
|
+
*
|
|
181
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
185
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
186
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
187
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
188
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
189
|
+
*
|
|
190
|
+
* const lockProvider = new LockProvider({
|
|
191
|
+
* adapter: new MemoryLockAdapter(),
|
|
192
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
193
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
194
|
+
* });
|
|
195
|
+
*
|
|
196
|
+
* const lock = lockProvider.create("a");
|
|
197
|
+
*
|
|
198
|
+
* await lock.runOrFail(
|
|
199
|
+
* new LazyPromise(async () => {
|
|
200
|
+
* console.log("START");
|
|
201
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
202
|
+
* console.log("END");
|
|
203
|
+
* })
|
|
204
|
+
* );
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
73
207
|
runOrFail<TValue = void>(asyncFn: LazyPromiseable<TValue>): LazyPromise<TValue>;
|
|
208
|
+
/**
|
|
209
|
+
* You can pass in a sync function or async function.
|
|
210
|
+
* @example
|
|
211
|
+
* ```ts
|
|
212
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
213
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
214
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
215
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
216
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
217
|
+
*
|
|
218
|
+
* const lockProvider = new LockProvider({
|
|
219
|
+
* adapter: new MemoryLockAdapter(),
|
|
220
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
221
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
222
|
+
* });
|
|
223
|
+
*
|
|
224
|
+
* const lock = lockProvider.create("a");
|
|
225
|
+
*
|
|
226
|
+
* await lock.runBlocking(async () => {
|
|
227
|
+
* console.log("START");
|
|
228
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
229
|
+
* console.log("END");
|
|
230
|
+
* });
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
234
|
+
* @example
|
|
235
|
+
* ```ts
|
|
236
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
237
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
238
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
239
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
240
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
241
|
+
*
|
|
242
|
+
* const lockProvider = new LockProvider({
|
|
243
|
+
* adapter: new MemoryLockAdapter(),
|
|
244
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
245
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
246
|
+
* });
|
|
247
|
+
*
|
|
248
|
+
* const lock = lockProvider.create("a");
|
|
249
|
+
*
|
|
250
|
+
* await lock.runBlocking(
|
|
251
|
+
* new LazyPromise(async () => {
|
|
252
|
+
* console.log("START");
|
|
253
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
254
|
+
* console.log("END");
|
|
255
|
+
* })
|
|
256
|
+
* );
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
74
259
|
runBlocking<TValue = void>(asyncFn: LazyPromiseable<TValue>, settings?: AquireBlockingSettings): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
|
|
260
|
+
/**
|
|
261
|
+
* You can pass in a sync function or async function.
|
|
262
|
+
* @example
|
|
263
|
+
* ```ts
|
|
264
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
265
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
266
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
267
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
268
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
269
|
+
*
|
|
270
|
+
* const lockProvider = new LockProvider({
|
|
271
|
+
* adapter: new MemoryLockAdapter(),
|
|
272
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
273
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
274
|
+
* });
|
|
275
|
+
*
|
|
276
|
+
* const lock = lockProvider.create("a");
|
|
277
|
+
*
|
|
278
|
+
* await lock.runBlockingOrFail(async () => {
|
|
279
|
+
* console.log("START");
|
|
280
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
281
|
+
* console.log("END");
|
|
282
|
+
* });
|
|
283
|
+
* ```
|
|
284
|
+
*
|
|
285
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
286
|
+
* @example
|
|
287
|
+
* ```ts
|
|
288
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
289
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
290
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
291
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
292
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
293
|
+
*
|
|
294
|
+
* const lockProvider = new LockProvider({
|
|
295
|
+
* adapter: new MemoryLockAdapter(),
|
|
296
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
297
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
298
|
+
* });
|
|
299
|
+
*
|
|
300
|
+
* const lock = lockProvider.create("a");
|
|
301
|
+
*
|
|
302
|
+
* await lock.runBlockingOrFail(
|
|
303
|
+
* new LazyPromise(async () => {
|
|
304
|
+
* console.log("START");
|
|
305
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
306
|
+
* console.log("END");
|
|
307
|
+
* })
|
|
308
|
+
* );
|
|
309
|
+
* ```
|
|
310
|
+
*/
|
|
311
|
+
runBlockingOrFail<TValue = void>(asyncFn: LazyPromiseable<TValue>, settings?: AquireBlockingSettings): LazyPromise<TValue>;
|
|
75
312
|
acquire(): LazyPromise<boolean>;
|
|
76
313
|
acquireOrFail(): LazyPromise<void>;
|
|
77
314
|
acquireBlocking(settings?: AquireBlockingSettings): LazyPromise<boolean>;
|
|
315
|
+
acquireBlockingOrFail(settings?: AquireBlockingSettings): LazyPromise<void>;
|
|
78
316
|
release(): LazyPromise<boolean>;
|
|
79
317
|
releaseOrFail(): LazyPromise<void>;
|
|
80
318
|
forceRelease(): LazyPromise<void>;
|
|
@@ -54,30 +54,113 @@ export class Lock {
|
|
|
54
54
|
this.defaultBlockingTime = defaultBlockingTime;
|
|
55
55
|
this.defaultRefreshTime = defaultRefreshTime;
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
59
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
60
|
+
*/
|
|
57
61
|
addListener(event, listener) {
|
|
58
62
|
return this.lockEventBus.addListener(event, listener);
|
|
59
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
66
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
67
|
+
*/
|
|
60
68
|
addListenerMany(events, listener) {
|
|
61
69
|
return this.lockEventBus.addListenerMany(events, listener);
|
|
62
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
73
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
74
|
+
*/
|
|
63
75
|
removeListener(event, listener) {
|
|
64
76
|
return this.lockEventBus.removeListener(event, listener);
|
|
65
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* You can listen to the following <i>{@link LockEvents}</i> of the <i>{@link Lock}</i> instance.
|
|
80
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
81
|
+
*/
|
|
66
82
|
removeListenerMany(events, listener) {
|
|
67
83
|
return this.lockEventBus.removeListenerMany(events, listener);
|
|
68
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
87
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
88
|
+
*/
|
|
69
89
|
listenOnce(event, listener) {
|
|
70
90
|
return this.lockEventBus.listenOnce(event, listener);
|
|
71
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
94
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
95
|
+
*/
|
|
72
96
|
asPromise(event) {
|
|
73
97
|
return this.lockEventBus.asPromise(event);
|
|
74
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
101
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
102
|
+
*/
|
|
75
103
|
subscribe(event, listener) {
|
|
76
104
|
return this.lockEventBus.subscribe(event, listener);
|
|
77
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* You can listen to the following <i>{@link LockEvents}</i> of lock instance.
|
|
108
|
+
* To understand how this method works, refer to <i>{@link IEventListenable}</i>.
|
|
109
|
+
*/
|
|
78
110
|
subscribeMany(events, listener) {
|
|
79
111
|
return this.lockEventBus.subscribeMany(events, listener);
|
|
80
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* You can pass in a sync function or async function.
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
118
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
119
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
120
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
121
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
122
|
+
*
|
|
123
|
+
* const lockProvider = new LockProvider({
|
|
124
|
+
* adapter: new MemoryLockAdapter(),
|
|
125
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
126
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
127
|
+
* });
|
|
128
|
+
*
|
|
129
|
+
* const lock = lockProvider.create("a");
|
|
130
|
+
*
|
|
131
|
+
* await lock.run(async () => {
|
|
132
|
+
* console.log("START");
|
|
133
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
134
|
+
* console.log("END");
|
|
135
|
+
* });
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
142
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
143
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
144
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
145
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
146
|
+
*
|
|
147
|
+
* const lockProvider = new LockProvider({
|
|
148
|
+
* adapter: new MemoryLockAdapter(),
|
|
149
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
150
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
151
|
+
* });
|
|
152
|
+
*
|
|
153
|
+
* const lock = lockProvider.create("a");
|
|
154
|
+
*
|
|
155
|
+
* await lock.run(
|
|
156
|
+
* new LazyPromise(async () => {
|
|
157
|
+
* console.log("START");
|
|
158
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
159
|
+
* console.log("END");
|
|
160
|
+
* })
|
|
161
|
+
* );
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
81
164
|
run(asyncFn) {
|
|
82
165
|
return this.createLazyPromise(async () => {
|
|
83
166
|
if (typeof asyncFn === "function") {
|
|
@@ -98,6 +181,57 @@ export class Lock {
|
|
|
98
181
|
}
|
|
99
182
|
}).setRetryPolicy((error) => error instanceof UnableToAquireLockError);
|
|
100
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* You can pass in a sync function or async function.
|
|
186
|
+
* @example
|
|
187
|
+
* ```ts
|
|
188
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
189
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
190
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
191
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
192
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
193
|
+
*
|
|
194
|
+
* const lockProvider = new LockProvider({
|
|
195
|
+
* adapter: new MemoryLockAdapter(),
|
|
196
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
197
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
198
|
+
* });
|
|
199
|
+
*
|
|
200
|
+
* const lock = lockProvider.create("a");
|
|
201
|
+
*
|
|
202
|
+
* await lock.runOrFail(async () => {
|
|
203
|
+
* console.log("START");
|
|
204
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
205
|
+
* console.log("END");
|
|
206
|
+
* });
|
|
207
|
+
* ```
|
|
208
|
+
*
|
|
209
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
210
|
+
* @example
|
|
211
|
+
* ```ts
|
|
212
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
213
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
214
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
215
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
216
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
217
|
+
*
|
|
218
|
+
* const lockProvider = new LockProvider({
|
|
219
|
+
* adapter: new MemoryLockAdapter(),
|
|
220
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
221
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
222
|
+
* });
|
|
223
|
+
*
|
|
224
|
+
* const lock = lockProvider.create("a");
|
|
225
|
+
*
|
|
226
|
+
* await lock.runOrFail(
|
|
227
|
+
* new LazyPromise(async () => {
|
|
228
|
+
* console.log("START");
|
|
229
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
230
|
+
* console.log("END");
|
|
231
|
+
* })
|
|
232
|
+
* );
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
101
235
|
runOrFail(asyncFn) {
|
|
102
236
|
return this.createLazyPromise(async () => {
|
|
103
237
|
try {
|
|
@@ -113,6 +247,57 @@ export class Lock {
|
|
|
113
247
|
}).setRetryPolicy((error) => error instanceof UnableToAquireLockError ||
|
|
114
248
|
error instanceof KeyAlreadyAcquiredLockError);
|
|
115
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* You can pass in a sync function or async function.
|
|
252
|
+
* @example
|
|
253
|
+
* ```ts
|
|
254
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
255
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
256
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
257
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
258
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
259
|
+
*
|
|
260
|
+
* const lockProvider = new LockProvider({
|
|
261
|
+
* adapter: new MemoryLockAdapter(),
|
|
262
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
263
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
264
|
+
* });
|
|
265
|
+
*
|
|
266
|
+
* const lock = lockProvider.create("a");
|
|
267
|
+
*
|
|
268
|
+
* await lock.runBlocking(async () => {
|
|
269
|
+
* console.log("START");
|
|
270
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
271
|
+
* console.log("END");
|
|
272
|
+
* });
|
|
273
|
+
* ```
|
|
274
|
+
*
|
|
275
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
276
|
+
* @example
|
|
277
|
+
* ```ts
|
|
278
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
279
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
280
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
281
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
282
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
283
|
+
*
|
|
284
|
+
* const lockProvider = new LockProvider({
|
|
285
|
+
* adapter: new MemoryLockAdapter(),
|
|
286
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
287
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
288
|
+
* });
|
|
289
|
+
*
|
|
290
|
+
* const lock = lockProvider.create("a");
|
|
291
|
+
*
|
|
292
|
+
* await lock.runBlocking(
|
|
293
|
+
* new LazyPromise(async () => {
|
|
294
|
+
* console.log("START");
|
|
295
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
296
|
+
* console.log("END");
|
|
297
|
+
* })
|
|
298
|
+
* );
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
116
301
|
runBlocking(asyncFn, settings) {
|
|
117
302
|
return this.createLazyPromise(async () => {
|
|
118
303
|
if (typeof asyncFn === "function") {
|
|
@@ -133,6 +318,71 @@ export class Lock {
|
|
|
133
318
|
}
|
|
134
319
|
}).setRetryPolicy((error) => error instanceof UnableToAquireLockError);
|
|
135
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* You can pass in a sync function or async function.
|
|
323
|
+
* @example
|
|
324
|
+
* ```ts
|
|
325
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
326
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
327
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
328
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
329
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
330
|
+
*
|
|
331
|
+
* const lockProvider = new LockProvider({
|
|
332
|
+
* adapter: new MemoryLockAdapter(),
|
|
333
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
334
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
335
|
+
* });
|
|
336
|
+
*
|
|
337
|
+
* const lock = lockProvider.create("a");
|
|
338
|
+
*
|
|
339
|
+
* await lock.runBlockingOrFail(async () => {
|
|
340
|
+
* console.log("START");
|
|
341
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
342
|
+
* console.log("END");
|
|
343
|
+
* });
|
|
344
|
+
* ```
|
|
345
|
+
*
|
|
346
|
+
* You can also pass in a <i>{@link LazyPromise}</i>. This is useful because all other components in this library returns <i>{@link LazyPromise}</i>.
|
|
347
|
+
* @example
|
|
348
|
+
* ```ts
|
|
349
|
+
* import { LockProvider } from "@daiso-tech/core/lock";
|
|
350
|
+
* import { MemoryLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
351
|
+
* import { KeyPrefixer, TimeSpan, LazyPromise } from "@daiso-tech/core/utilities";
|
|
352
|
+
* import { Serde } from "@daiso-tech/core/adapter";
|
|
353
|
+
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/adapter/adapters";
|
|
354
|
+
*
|
|
355
|
+
* const lockProvider = new LockProvider({
|
|
356
|
+
* adapter: new MemoryLockAdapter(),
|
|
357
|
+
* keyPrefixer: new KeyPrefixer("lock"),
|
|
358
|
+
* serde: new Serde(new SuperJsonSerdeAdapter())
|
|
359
|
+
* });
|
|
360
|
+
*
|
|
361
|
+
* const lock = lockProvider.create("a");
|
|
362
|
+
*
|
|
363
|
+
* await lock.runBlockingOrFail(
|
|
364
|
+
* new LazyPromise(async () => {
|
|
365
|
+
* console.log("START");
|
|
366
|
+
* await LazyPromise.delay(TimeSpan.fromSeconds(10));
|
|
367
|
+
* console.log("END");
|
|
368
|
+
* })
|
|
369
|
+
* );
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
runBlockingOrFail(asyncFn, settings) {
|
|
373
|
+
return new LazyPromise(async () => {
|
|
374
|
+
if (typeof asyncFn === "function") {
|
|
375
|
+
asyncFn = new LazyPromise(asyncFn);
|
|
376
|
+
}
|
|
377
|
+
try {
|
|
378
|
+
await this.acquireBlockingOrFail(settings);
|
|
379
|
+
return await asyncFn;
|
|
380
|
+
}
|
|
381
|
+
finally {
|
|
382
|
+
await this.release();
|
|
383
|
+
}
|
|
384
|
+
}).setRetryPolicy((error) => error instanceof UnableToAquireLockError);
|
|
385
|
+
}
|
|
136
386
|
acquire() {
|
|
137
387
|
return this.createLazyPromise(async () => {
|
|
138
388
|
try {
|
|
@@ -194,6 +444,14 @@ export class Lock {
|
|
|
194
444
|
return false;
|
|
195
445
|
});
|
|
196
446
|
}
|
|
447
|
+
acquireBlockingOrFail(settings) {
|
|
448
|
+
return new LazyPromise(async () => {
|
|
449
|
+
const hasAquired = await this.acquireBlocking(settings);
|
|
450
|
+
if (!hasAquired) {
|
|
451
|
+
throw new KeyAlreadyAcquiredLockError(`Key "${this.key.resolved}" already acquired`);
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
}
|
|
197
455
|
release() {
|
|
198
456
|
return this.createLazyPromise(async () => {
|
|
199
457
|
try {
|
|
@@ -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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"}
|