@@ -4,15 +4,17 @@ import type {
4
4
Lockable ,
5
5
MultiLockRequest ,
6
6
MultiLockAcquire ,
7
- MultiLockAcquired
7
+ MultiLockAcquired ,
8
8
} from './types' ;
9
9
import { withF , withG } from '@matrixai/resources' ;
10
10
import { ErrorAsyncLocksLockBoxConflict } from './errors' ;
11
11
12
12
class LockBox < L extends Lockable = Lockable > implements Lockable {
13
13
protected _locks : Map < string , L > = new Map ( ) ;
14
14
15
- public lock ( ...requests : Array < MultiLockRequest < L > > ) : ResourceAcquire < LockBox < L > > {
15
+ public lock (
16
+ ...requests : Array < MultiLockRequest < L > >
17
+ ) : ResourceAcquire < LockBox < L > > {
16
18
return async ( ) => {
17
19
// Convert to strings
18
20
// This creates a copy of the requests
@@ -215,16 +217,23 @@ class LockBox<L extends Lockable = Lockable> implements Lockable {
215
217
f : ( multiLocks : Array < MultiLockAcquired < L > > ) => Promise < T > ,
216
218
]
217
219
) : Promise < T > {
218
- const f = params . pop ( ) as ( multiLocks : Array < MultiLockAcquired < L > > ) => Promise < T > ;
219
- const lockAcquires = this . lockMulti ( ...( params as Array < MultiLockRequest < L > > ) ) ;
220
+ const f = params . pop ( ) as (
221
+ multiLocks : Array < MultiLockAcquired < L > > ,
222
+ ) => Promise < T > ;
223
+ const lockAcquires = this . lockMulti (
224
+ ...( params as Array < MultiLockRequest < L > > ) ,
225
+ ) ;
220
226
221
227
const lockAcquires_ : Array < ResourceAcquire < MultiLockAcquired < L > > > =
222
228
lockAcquires . map (
223
229
( [ key , lockAcquire , ...lockingParams ] ) =>
224
230
( ...r ) =>
225
231
lockAcquire ( ...r ) . then (
226
232
( [ lockRelease , lock ] ) =>
227
- [ lockRelease , [ key , lock , ...lockingParams ] ] as [ ResourceRelease , MultiLockAcquired < L > ] ,
233
+ [ lockRelease , [ key , lock , ...lockingParams ] ] as [
234
+ ResourceRelease ,
235
+ MultiLockAcquired < L > ,
236
+ ] ,
228
237
) ,
229
238
) ;
230
239
return withF ( lockAcquires_ , f ) ;
@@ -256,14 +265,19 @@ class LockBox<L extends Lockable = Lockable> implements Lockable {
256
265
const g = params . pop ( ) as (
257
266
multiLocks : Array < MultiLockAcquired < L > > ,
258
267
) => AsyncGenerator < T , TReturn , TNext > ;
259
- const lockAcquires = this . lockMulti ( ...( params as Array < MultiLockRequest < L > > ) ) ;
268
+ const lockAcquires = this . lockMulti (
269
+ ...( params as Array < MultiLockRequest < L > > ) ,
270
+ ) ;
260
271
const lockAcquires_ : Array < ResourceAcquire < MultiLockAcquired < L > > > =
261
272
lockAcquires . map (
262
273
( [ key , lockAcquire , ...lockingParams ] ) =>
263
274
( ...r ) =>
264
275
lockAcquire ( ...r ) . then (
265
276
( [ lockRelease , lock ] ) =>
266
- [ lockRelease , [ key , lock , ...lockingParams ] ] as [ ResourceRelease , MultiLockAcquired < L > ] ,
277
+ [ lockRelease , [ key , lock , ...lockingParams ] ] as [
278
+ ResourceRelease ,
279
+ MultiLockAcquired < L > ,
280
+ ] ,
267
281
) ,
268
282
) ;
269
283
return withG ( lockAcquires_ , g ) ;
0 commit comments