Skip to content

Commit 18c9c49

Browse files
committed
WIP
1 parent d50ac51 commit 18c9c49

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

src/LockBox.ts

+21-7
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@ import type {
44
Lockable,
55
MultiLockRequest,
66
MultiLockAcquire,
7-
MultiLockAcquired
7+
MultiLockAcquired,
88
} from './types';
99
import { withF, withG } from '@matrixai/resources';
1010
import { ErrorAsyncLocksLockBoxConflict } from './errors';
1111

1212
class LockBox<L extends Lockable = Lockable> implements Lockable {
1313
protected _locks: Map<string, L> = new Map();
1414

15-
public lock(...requests: Array<MultiLockRequest<L>>): ResourceAcquire<LockBox<L>> {
15+
public lock(
16+
...requests: Array<MultiLockRequest<L>>
17+
): ResourceAcquire<LockBox<L>> {
1618
return async () => {
1719
// Convert to strings
1820
// This creates a copy of the requests
@@ -215,16 +217,23 @@ class LockBox<L extends Lockable = Lockable> implements Lockable {
215217
f: (multiLocks: Array<MultiLockAcquired<L>>) => Promise<T>,
216218
]
217219
): 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+
);
220226

221227
const lockAcquires_: Array<ResourceAcquire<MultiLockAcquired<L>>> =
222228
lockAcquires.map(
223229
([key, lockAcquire, ...lockingParams]) =>
224230
(...r) =>
225231
lockAcquire(...r).then(
226232
([lockRelease, lock]) =>
227-
[lockRelease, [key, lock, ...lockingParams]] as [ResourceRelease, MultiLockAcquired<L>],
233+
[lockRelease, [key, lock, ...lockingParams]] as [
234+
ResourceRelease,
235+
MultiLockAcquired<L>,
236+
],
228237
),
229238
);
230239
return withF(lockAcquires_, f);
@@ -256,14 +265,19 @@ class LockBox<L extends Lockable = Lockable> implements Lockable {
256265
const g = params.pop() as (
257266
multiLocks: Array<MultiLockAcquired<L>>,
258267
) => 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+
);
260271
const lockAcquires_: Array<ResourceAcquire<MultiLockAcquired<L>>> =
261272
lockAcquires.map(
262273
([key, lockAcquire, ...lockingParams]) =>
263274
(...r) =>
264275
lockAcquire(...r).then(
265276
([lockRelease, lock]) =>
266-
[lockRelease, [key, lock, ...lockingParams]] as [ResourceRelease, MultiLockAcquired<L>],
277+
[lockRelease, [key, lock, ...lockingParams]] as [
278+
ResourceRelease,
279+
MultiLockAcquired<L>,
280+
],
267281
),
268282
);
269283
return withG(lockAcquires_, g);

src/types.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,11 @@ type MultiLockAcquired<L extends Lockable = Lockable> = [
4141
...lockingParams: Parameters<L['lock']>,
4242
];
4343

44-
export type { POJO, ToString, Lockable, MultiLockRequest, MultiLockAcquire, MultiLockAcquired };
44+
export type {
45+
POJO,
46+
ToString,
47+
Lockable,
48+
MultiLockRequest,
49+
MultiLockAcquire,
50+
MultiLockAcquired,
51+
};

0 commit comments

Comments
 (0)