-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.ts
21 lines (19 loc) · 897 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import {DataLayer} from "./src/data-layer";
import {DynamoDB} from "aws-sdk";
import {LockTableConfig, LockTableConfigParam} from "./src/model/lock-table-config";
import {LockClient, LogCallbackType} from "./src/lock-client";
export {Lock, LockOptions} from "./src/model/lock";
export {LockClient, LogCallbackType} from "./src/lock-client";
export {LockNotGrantedError, LockOptionsValidationError, LockTableConfigValidationError} from "./src/model/errors";
/**
* @throws LockTableConfigValidationError
*/
export const dynamoDBLockClientFactory = (
documentClient: DynamoDB.DocumentClient,
lockTableConfigParam?: LockTableConfigParam,
logCallback?: LogCallbackType
): LockClient => {
const lockTableConfig = LockTableConfig.create(lockTableConfigParam);
const dataLayer = new DataLayer(documentClient, lockTableConfig);
return new LockClient(dataLayer, logCallback);
};