dynamo-document-builder 0.6.0 → 0.6.1
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 +270 -0
- package/dist/attributes/attribute-map.cjs +52 -0
- package/dist/attributes/attribute-map.cjs.map +1 -1
- package/dist/attributes/attribute-map.d.ts +67 -0
- package/dist/attributes/attribute-map.mjs +52 -0
- package/dist/attributes/attribute-map.mjs.map +1 -1
- package/dist/commands/batch-get.cjs +36 -0
- package/dist/commands/batch-get.cjs.map +1 -1
- package/dist/commands/batch-get.d.ts +48 -2
- package/dist/commands/batch-get.mjs +36 -0
- package/dist/commands/batch-get.mjs.map +1 -1
- package/dist/commands/batch-projected-get.cjs +42 -0
- package/dist/commands/batch-projected-get.cjs.map +1 -1
- package/dist/commands/batch-projected-get.d.ts +56 -3
- package/dist/commands/batch-projected-get.mjs +42 -0
- package/dist/commands/batch-projected-get.mjs.map +1 -1
- package/dist/commands/batch-write.cjs +38 -0
- package/dist/commands/batch-write.cjs.map +1 -1
- package/dist/commands/batch-write.d.ts +51 -3
- package/dist/commands/batch-write.mjs +38 -0
- package/dist/commands/batch-write.mjs.map +1 -1
- package/dist/commands/condition-check.cjs +37 -0
- package/dist/commands/condition-check.cjs.map +1 -1
- package/dist/commands/condition-check.d.ts +45 -3
- package/dist/commands/condition-check.mjs +37 -0
- package/dist/commands/condition-check.mjs.map +1 -1
- package/dist/commands/conditional-delete.cjs +33 -0
- package/dist/commands/conditional-delete.cjs.map +1 -1
- package/dist/commands/conditional-delete.d.ts +46 -3
- package/dist/commands/conditional-delete.mjs +33 -0
- package/dist/commands/conditional-delete.mjs.map +1 -1
- package/dist/commands/conditional-put.cjs +34 -0
- package/dist/commands/conditional-put.cjs.map +1 -1
- package/dist/commands/conditional-put.d.ts +48 -4
- package/dist/commands/conditional-put.mjs +34 -0
- package/dist/commands/conditional-put.mjs.map +1 -1
- package/dist/commands/conditional-update.cjs +35 -0
- package/dist/commands/conditional-update.cjs.map +1 -1
- package/dist/commands/conditional-update.d.ts +48 -3
- package/dist/commands/conditional-update.mjs +35 -0
- package/dist/commands/conditional-update.mjs.map +1 -1
- package/dist/commands/delete.cjs +32 -0
- package/dist/commands/delete.cjs.map +1 -1
- package/dist/commands/delete.d.ts +44 -2
- package/dist/commands/delete.mjs +32 -0
- package/dist/commands/delete.mjs.map +1 -1
- package/dist/commands/get.cjs +33 -0
- package/dist/commands/get.cjs.map +1 -1
- package/dist/commands/get.d.ts +45 -2
- package/dist/commands/get.mjs +33 -0
- package/dist/commands/get.mjs.map +1 -1
- package/dist/commands/index.d.ts +62 -1
- package/dist/commands/projected-get.cjs +40 -0
- package/dist/commands/projected-get.cjs.map +1 -1
- package/dist/commands/projected-get.d.ts +54 -3
- package/dist/commands/projected-get.mjs +40 -0
- package/dist/commands/projected-get.mjs.map +1 -1
- package/dist/commands/projected-query.cjs +41 -0
- package/dist/commands/projected-query.cjs.map +1 -1
- package/dist/commands/projected-query.d.ts +56 -3
- package/dist/commands/projected-query.mjs +41 -0
- package/dist/commands/projected-query.mjs.map +1 -1
- package/dist/commands/projected-scan.cjs +41 -0
- package/dist/commands/projected-scan.cjs.map +1 -1
- package/dist/commands/projected-scan.d.ts +55 -3
- package/dist/commands/projected-scan.mjs +41 -0
- package/dist/commands/projected-scan.mjs.map +1 -1
- package/dist/commands/put.cjs +37 -0
- package/dist/commands/put.cjs.map +1 -1
- package/dist/commands/put.d.ts +50 -3
- package/dist/commands/put.mjs +37 -0
- package/dist/commands/put.mjs.map +1 -1
- package/dist/commands/query.cjs +36 -1
- package/dist/commands/query.cjs.map +1 -1
- package/dist/commands/query.d.ts +48 -3
- package/dist/commands/query.mjs +36 -1
- package/dist/commands/query.mjs.map +1 -1
- package/dist/commands/scan.cjs +33 -0
- package/dist/commands/scan.cjs.map +1 -1
- package/dist/commands/scan.d.ts +46 -3
- package/dist/commands/scan.mjs +33 -0
- package/dist/commands/scan.mjs.map +1 -1
- package/dist/commands/transact-get.cjs +35 -0
- package/dist/commands/transact-get.cjs.map +1 -1
- package/dist/commands/transact-get.d.ts +47 -2
- package/dist/commands/transact-get.mjs +35 -0
- package/dist/commands/transact-get.mjs.map +1 -1
- package/dist/commands/transact-write.cjs +37 -0
- package/dist/commands/transact-write.cjs.map +1 -1
- package/dist/commands/transact-write.d.ts +46 -1
- package/dist/commands/transact-write.mjs +37 -0
- package/dist/commands/transact-write.mjs.map +1 -1
- package/dist/commands/update.cjs +37 -0
- package/dist/commands/update.cjs.map +1 -1
- package/dist/commands/update.d.ts +50 -3
- package/dist/commands/update.mjs +37 -0
- package/dist/commands/update.mjs.map +1 -1
- package/dist/conditions/and.cjs +3 -0
- package/dist/conditions/and.cjs.map +1 -1
- package/dist/conditions/and.d.ts +4 -1
- package/dist/conditions/and.mjs +3 -0
- package/dist/conditions/and.mjs.map +1 -1
- package/dist/conditions/begins-with.cjs +3 -0
- package/dist/conditions/begins-with.cjs.map +1 -1
- package/dist/conditions/begins-with.d.ts +4 -1
- package/dist/conditions/begins-with.mjs +3 -0
- package/dist/conditions/begins-with.mjs.map +1 -1
- package/dist/conditions/between.cjs +3 -0
- package/dist/conditions/between.cjs.map +1 -1
- package/dist/conditions/between.d.ts +4 -1
- package/dist/conditions/between.mjs +3 -0
- package/dist/conditions/between.mjs.map +1 -1
- package/dist/conditions/condition-parser.d.ts +1 -1
- package/dist/conditions/contains.cjs +3 -0
- package/dist/conditions/contains.cjs.map +1 -1
- package/dist/conditions/contains.d.ts +4 -1
- package/dist/conditions/contains.mjs +3 -0
- package/dist/conditions/contains.mjs.map +1 -1
- package/dist/conditions/equals.cjs +3 -0
- package/dist/conditions/equals.cjs.map +1 -1
- package/dist/conditions/equals.d.ts +4 -1
- package/dist/conditions/equals.mjs +3 -0
- package/dist/conditions/equals.mjs.map +1 -1
- package/dist/conditions/exists.cjs +3 -0
- package/dist/conditions/exists.cjs.map +1 -1
- package/dist/conditions/exists.d.ts +4 -1
- package/dist/conditions/exists.mjs +3 -0
- package/dist/conditions/exists.mjs.map +1 -1
- package/dist/conditions/greater-than-or-equal.cjs +3 -0
- package/dist/conditions/greater-than-or-equal.cjs.map +1 -1
- package/dist/conditions/greater-than-or-equal.d.ts +4 -1
- package/dist/conditions/greater-than-or-equal.mjs +3 -0
- package/dist/conditions/greater-than-or-equal.mjs.map +1 -1
- package/dist/conditions/greater-than.cjs +3 -0
- package/dist/conditions/greater-than.cjs.map +1 -1
- package/dist/conditions/greater-than.d.ts +4 -1
- package/dist/conditions/greater-than.mjs +3 -0
- package/dist/conditions/greater-than.mjs.map +1 -1
- package/dist/conditions/index.cjs +2 -2
- package/dist/conditions/index.d.ts +185 -2
- package/dist/conditions/index.mjs +1 -1
- package/dist/conditions/is-in.cjs +3 -0
- package/dist/conditions/is-in.cjs.map +1 -1
- package/dist/conditions/is-in.d.ts +4 -1
- package/dist/conditions/is-in.mjs +3 -0
- package/dist/conditions/is-in.mjs.map +1 -1
- package/dist/conditions/less-than-or-equal.cjs +3 -0
- package/dist/conditions/less-than-or-equal.cjs.map +1 -1
- package/dist/conditions/less-than-or-equal.d.ts +4 -1
- package/dist/conditions/less-than-or-equal.mjs +3 -0
- package/dist/conditions/less-than-or-equal.mjs.map +1 -1
- package/dist/conditions/less-than.cjs +3 -0
- package/dist/conditions/less-than.cjs.map +1 -1
- package/dist/conditions/less-than.d.ts +4 -1
- package/dist/conditions/less-than.mjs +3 -0
- package/dist/conditions/less-than.mjs.map +1 -1
- package/dist/conditions/not-equals.cjs +3 -0
- package/dist/conditions/not-equals.cjs.map +1 -1
- package/dist/conditions/not-equals.d.ts +4 -1
- package/dist/conditions/not-equals.mjs +3 -0
- package/dist/conditions/not-equals.mjs.map +1 -1
- package/dist/conditions/not-exists.cjs +3 -0
- package/dist/conditions/not-exists.cjs.map +1 -1
- package/dist/conditions/not-exists.d.ts +4 -1
- package/dist/conditions/not-exists.mjs +3 -0
- package/dist/conditions/not-exists.mjs.map +1 -1
- package/dist/conditions/not.cjs +3 -0
- package/dist/conditions/not.cjs.map +1 -1
- package/dist/conditions/not.d.ts +4 -1
- package/dist/conditions/not.mjs +3 -0
- package/dist/conditions/not.mjs.map +1 -1
- package/dist/conditions/or.cjs +3 -0
- package/dist/conditions/or.cjs.map +1 -1
- package/dist/conditions/or.d.ts +4 -1
- package/dist/conditions/or.mjs +3 -0
- package/dist/conditions/or.mjs.map +1 -1
- package/dist/conditions/size.cjs +3 -0
- package/dist/conditions/size.cjs.map +1 -1
- package/dist/conditions/size.d.ts +4 -1
- package/dist/conditions/size.mjs +3 -0
- package/dist/conditions/size.mjs.map +1 -1
- package/dist/conditions/type-is.cjs +3 -0
- package/dist/conditions/type-is.cjs.map +1 -1
- package/dist/conditions/type-is.d.ts +4 -1
- package/dist/conditions/type-is.mjs +3 -0
- package/dist/conditions/type-is.mjs.map +1 -1
- package/dist/core/entity.cjs +57 -0
- package/dist/core/entity.cjs.map +1 -1
- package/dist/core/entity.d.ts +79 -4
- package/dist/core/entity.mjs +57 -0
- package/dist/core/entity.mjs.map +1 -1
- package/dist/core/index.d.ts +139 -2
- package/dist/core/key.cjs +1 -1
- package/dist/core/key.cjs.map +1 -1
- package/dist/core/key.d.ts +26 -2
- package/dist/core/key.mjs +1 -1
- package/dist/core/key.mjs.map +1 -1
- package/dist/core/table.cjs +22 -0
- package/dist/core/table.cjs.map +1 -1
- package/dist/core/table.d.ts +35 -1
- package/dist/core/table.mjs +22 -0
- package/dist/core/table.mjs.map +1 -1
- package/dist/errors.cjs +3 -0
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +3 -0
- package/dist/errors.mjs +3 -0
- package/dist/errors.mjs.map +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +7 -7
- package/dist/index.mjs +2 -2
- package/dist/projections/index.d.ts +7 -1
- package/dist/projections/projection-parser.d.ts +1 -1
- package/dist/updates/add-to-set.cjs +5 -0
- package/dist/updates/add-to-set.cjs.map +1 -1
- package/dist/updates/add-to-set.d.ts +6 -1
- package/dist/updates/add-to-set.mjs +5 -0
- package/dist/updates/add-to-set.mjs.map +1 -1
- package/dist/updates/add.cjs +5 -0
- package/dist/updates/add.cjs.map +1 -1
- package/dist/updates/add.d.ts +6 -1
- package/dist/updates/add.mjs +5 -0
- package/dist/updates/add.mjs.map +1 -1
- package/dist/updates/append.cjs +5 -0
- package/dist/updates/append.cjs.map +1 -1
- package/dist/updates/append.d.ts +6 -1
- package/dist/updates/append.mjs +5 -0
- package/dist/updates/append.mjs.map +1 -1
- package/dist/updates/index.d.ts +78 -1
- package/dist/updates/prepend.cjs +5 -0
- package/dist/updates/prepend.cjs.map +1 -1
- package/dist/updates/prepend.d.ts +6 -1
- package/dist/updates/prepend.mjs +5 -0
- package/dist/updates/prepend.mjs.map +1 -1
- package/dist/updates/ref.cjs +6 -0
- package/dist/updates/ref.cjs.map +1 -1
- package/dist/updates/ref.d.ts +7 -1
- package/dist/updates/ref.mjs +6 -0
- package/dist/updates/ref.mjs.map +1 -1
- package/dist/updates/remove-from-set.cjs +5 -0
- package/dist/updates/remove-from-set.cjs.map +1 -1
- package/dist/updates/remove-from-set.d.ts +6 -1
- package/dist/updates/remove-from-set.mjs +5 -0
- package/dist/updates/remove-from-set.mjs.map +1 -1
- package/dist/updates/remove.cjs +3 -0
- package/dist/updates/remove.cjs.map +1 -1
- package/dist/updates/remove.d.ts +4 -1
- package/dist/updates/remove.mjs +3 -0
- package/dist/updates/remove.mjs.map +1 -1
- package/dist/updates/subtract.cjs +5 -0
- package/dist/updates/subtract.cjs.map +1 -1
- package/dist/updates/subtract.d.ts +6 -1
- package/dist/updates/subtract.mjs +5 -0
- package/dist/updates/subtract.mjs.map +1 -1
- package/dist/updates/update-parser.cjs +10 -0
- package/dist/updates/update-parser.cjs.map +1 -1
- package/dist/updates/update-parser.d.ts +17 -1
- package/dist/updates/update-parser.mjs +10 -0
- package/dist/updates/update-parser.mjs.map +1 -1
- package/package.json +2 -1
- package/dist/commands/base-command.cjs +0 -3
- package/dist/commands/base-command.cjs.map +0 -1
- package/dist/commands/base-command.d.ts +0 -27
- package/dist/commands/base-command.mjs +0 -2
- package/dist/commands/base-command.mjs.map +0 -1
- package/dist/conditions/condition-types.cjs +0 -3
- package/dist/conditions/condition-types.cjs.map +0 -1
- package/dist/conditions/condition-types.d.ts +0 -95
- package/dist/conditions/condition-types.mjs +0 -2
- package/dist/conditions/condition-types.mjs.map +0 -1
- package/dist/core/core-types.cjs +0 -3
- package/dist/core/core-types.cjs.map +0 -1
- package/dist/core/core-types.d.ts +0 -44
- package/dist/core/core-types.mjs +0 -2
- package/dist/core/core-types.mjs.map +0 -1
- package/dist/projections/projection-types.cjs +0 -3
- package/dist/projections/projection-types.cjs.map +0 -1
- package/dist/projections/projection-types.d.ts +0 -3
- package/dist/projections/projection-types.mjs +0 -2
- package/dist/projections/projection-types.mjs.map +0 -1
- package/dist/updates/update-types.cjs +0 -3
- package/dist/updates/update-types.cjs.map +0 -1
- package/dist/updates/update-types.d.ts +0 -45
- package/dist/updates/update-types.mjs +0 -2
- package/dist/updates/update-types.mjs.map +0 -1
|
@@ -1,16 +1,62 @@
|
|
|
1
|
-
import { BaseConfig, BaseResult, BaseCommand } from './
|
|
1
|
+
import { BaseConfig, BaseResult, BaseCommand } from './index.js';
|
|
2
2
|
import { DynamoEntity } from '../core/entity.js';
|
|
3
|
-
import { EntitySchema } from '../core/
|
|
3
|
+
import { EntitySchema } from '../core/index.js';
|
|
4
4
|
import { ZodObject } from 'zod/v4';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for the BatchGet command.
|
|
8
|
+
*
|
|
9
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
10
|
+
*/
|
|
6
11
|
type BatchGetConfig<Schema extends ZodObject> = BaseConfig & {
|
|
7
12
|
keys: Array<Partial<EntitySchema<Schema>>>;
|
|
8
13
|
consistent?: boolean;
|
|
9
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Result of the BatchGet command.
|
|
17
|
+
*
|
|
18
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
19
|
+
*/
|
|
10
20
|
type BatchGetResult<Schema extends ZodObject> = BaseResult & {
|
|
11
21
|
items: Array<EntitySchema<Schema>>;
|
|
12
22
|
unprocessedKeys?: Array<Partial<EntitySchema<Schema>>>;
|
|
13
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Command to perform a batch get operation on a DynamoDB table.
|
|
26
|
+
*
|
|
27
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { DynamoTable, DynamoEntity, key, BatchGet } from 'dynamo-document-builder';
|
|
32
|
+
*
|
|
33
|
+
* const table = new DynamoTable({
|
|
34
|
+
* tableName: 'ExampleTable',
|
|
35
|
+
* documentClient,
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* const userEntity = new DynamoEntity({
|
|
39
|
+
* table,
|
|
40
|
+
* schema: z.object({
|
|
41
|
+
* userId: z.string(),
|
|
42
|
+
* name: z.string(),
|
|
43
|
+
* age: z.number(),
|
|
44
|
+
* }),
|
|
45
|
+
* partitionKey: user => key('USER', user.userId),
|
|
46
|
+
* sortKey: () => 'USER',
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* const batchGetCommand = new BatchGet({
|
|
50
|
+
* keys: [
|
|
51
|
+
* { userId: 'user1' },
|
|
52
|
+
* { userId: 'user2' },
|
|
53
|
+
* ],
|
|
54
|
+
* consistent: true,
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* const { items } = await batchGetCommand.execute(userEntity);
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
14
60
|
declare class BatchGet<Schema extends ZodObject> implements BaseCommand<BatchGetResult<Schema>, Schema> {
|
|
15
61
|
#private;
|
|
16
62
|
constructor(config: BatchGetConfig<Schema>);
|
|
@@ -4,6 +4,42 @@ import { BatchGetCommand } from '@aws-sdk/lib-dynamodb';
|
|
|
4
4
|
import pMap from 'p-map';
|
|
5
5
|
|
|
6
6
|
var _BatchGet_config;
|
|
7
|
+
/**
|
|
8
|
+
* Command to perform a batch get operation on a DynamoDB table.
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { DynamoTable, DynamoEntity, key, BatchGet } from 'dynamo-document-builder';
|
|
15
|
+
*
|
|
16
|
+
* const table = new DynamoTable({
|
|
17
|
+
* tableName: 'ExampleTable',
|
|
18
|
+
* documentClient,
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* const userEntity = new DynamoEntity({
|
|
22
|
+
* table,
|
|
23
|
+
* schema: z.object({
|
|
24
|
+
* userId: z.string(),
|
|
25
|
+
* name: z.string(),
|
|
26
|
+
* age: z.number(),
|
|
27
|
+
* }),
|
|
28
|
+
* partitionKey: user => key('USER', user.userId),
|
|
29
|
+
* sortKey: () => 'USER',
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* const batchGetCommand = new BatchGet({
|
|
33
|
+
* keys: [
|
|
34
|
+
* { userId: 'user1' },
|
|
35
|
+
* { userId: 'user2' },
|
|
36
|
+
* ],
|
|
37
|
+
* consistent: true,
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* const { items } = await batchGetCommand.execute(userEntity);
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
7
43
|
class BatchGet {
|
|
8
44
|
constructor(config) {
|
|
9
45
|
_BatchGet_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-get.mjs","sources":["../../src/commands/batch-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"batch-get.mjs","sources":["../../src/commands/batch-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA4BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCG;MACU,QAAQ,CAAA;AAKnB,IAAA,WAAA,CAAY,MAA8B,EAAA;QAF1C,gBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,gBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;AACnC,gBAAA,YAAY,EAAE;AACZ,oBAAA,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG;AACxB,wBAAA,IAAI,EAAE,sBAAA,CAAA,IAAI,wBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;wBAC/D,cAAc,EAAE,MAAA,sBAAA,CAAA,IAAI,wBAAQ,CAAC,UAAU,mCAAI,KAAK;AACjD,qBAAA;AACF,iBAAA;AACD,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,gBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;AAEF,YAAA,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtE,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,wBAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,gBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;AAEF,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAc,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;YACzE,IAAI,KAAK,GAAgC,EAAE;AAE3C,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,uBAAA,IAAI,EAAA,gBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;oBAC/B,KAAK,GAAG,QAAuC;gBACjD;qBAAO;AACL,oBAAA,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnE,wBAAA,WAAW,EAAE,gCAAgC;wBAC7C,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,wBAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,qBAAA,CAAC;gBACJ;YACF;YAEA,OAAO;gBACL,KAAK;AACL,gBAAA,eAAe,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAc,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,0CAAE,IAE9D;gBACb,gBAAgB,EAAE,cAAc,CAAC,SAAS;AAC1C,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,cAAc,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aACvD;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -7,6 +7,48 @@ var projections_projectionParser = require('../projections/projection-parser.cjs
|
|
|
7
7
|
var pMap = require('p-map');
|
|
8
8
|
|
|
9
9
|
var _BatchProjectedGet_config;
|
|
10
|
+
/**
|
|
11
|
+
* Command to retrieve specific attributes of multiple items by primary keys in a single operation.
|
|
12
|
+
*
|
|
13
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
14
|
+
* @template ProjectionSchema - The Zod schema defining the structure of the projected attributes.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { DynamoTable, DynamoEntity, key, BatchProjectedGet } from 'dynamo-document-builder';
|
|
19
|
+
*
|
|
20
|
+
* const table = new DynamoTable({
|
|
21
|
+
* tableName: 'ExampleTable',
|
|
22
|
+
* documentClient,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* const userEntity = new DynamoEntity({
|
|
26
|
+
* table,
|
|
27
|
+
* schema: z.object({
|
|
28
|
+
* userId: z.string(),
|
|
29
|
+
* name: z.string(),
|
|
30
|
+
* email: z.string(),
|
|
31
|
+
* age: z.number(),
|
|
32
|
+
* }),
|
|
33
|
+
* partitionKey: user => key('USER', user.userId),
|
|
34
|
+
* sortKey: () => 'METADATA',
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* const batchProjectedGetCommand = new BatchProjectedGet({
|
|
38
|
+
* keys: [
|
|
39
|
+
* { userId: 'user1' },
|
|
40
|
+
* { userId: 'user2' },
|
|
41
|
+
* ],
|
|
42
|
+
* projection: ['name', 'email'],
|
|
43
|
+
* projectionSchema: z.object({
|
|
44
|
+
* name: z.string(),
|
|
45
|
+
* email: z.string(),
|
|
46
|
+
* }),
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* const { items } = await userEntity.send(batchProjectedGetCommand);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
10
52
|
class BatchProjectedGet {
|
|
11
53
|
constructor(config) {
|
|
12
54
|
_BatchProjectedGet_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-projected-get.cjs","sources":["../../src/commands/batch-projected-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseProjection","__classPrivateFieldGet","BatchGetCommand","BATCH_GET_VALIDATION_CONCURRENCY"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"batch-projected-get.cjs","sources":["../../src/commands/batch-projected-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseProjection","__classPrivateFieldGet","BatchGetCommand","BATCH_GET_VALIDATION_CONCURRENCY"],"mappings":"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"}
|
|
@@ -1,19 +1,72 @@
|
|
|
1
|
-
import { BaseConfig, BaseResult, BaseCommand } from './
|
|
1
|
+
import { BaseConfig, BaseResult, BaseCommand } from './index.js';
|
|
2
2
|
import { DynamoEntity } from '../core/entity.js';
|
|
3
|
-
import { EntitySchema } from '../core/
|
|
4
|
-
import { Projection } from '../projections/
|
|
3
|
+
import { EntitySchema } from '../core/index.js';
|
|
4
|
+
import { Projection } from '../projections/index.js';
|
|
5
5
|
import { ZodObject } from 'zod/v4';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for the BatchProjectedGet command.
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
* @template ProjectionSchema - The Zod schema defining the structure of the projected attributes.
|
|
12
|
+
*/
|
|
7
13
|
type BatchProjectedGetConfig<Schema extends ZodObject, ProjectionSchema extends ZodObject> = BaseConfig & {
|
|
8
14
|
keys: Array<Partial<EntitySchema<Schema>>>;
|
|
9
15
|
consistent?: boolean;
|
|
10
16
|
projection: Projection;
|
|
11
17
|
projectionSchema: ProjectionSchema;
|
|
12
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Result of the BatchProjectedGet command.
|
|
21
|
+
*
|
|
22
|
+
* @template ProjectionSchema - The Zod schema defining the structure of the projected attributes.
|
|
23
|
+
*/
|
|
13
24
|
type BatchProjectedGetResult<ProjectionSchema extends ZodObject> = BaseResult & {
|
|
14
25
|
items: Array<EntitySchema<ProjectionSchema>>;
|
|
15
26
|
unprocessedKeys?: Array<Partial<EntitySchema<ProjectionSchema>>>;
|
|
16
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Command to retrieve specific attributes of multiple items by primary keys in a single operation.
|
|
30
|
+
*
|
|
31
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
32
|
+
* @template ProjectionSchema - The Zod schema defining the structure of the projected attributes.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { DynamoTable, DynamoEntity, key, BatchProjectedGet } from 'dynamo-document-builder';
|
|
37
|
+
*
|
|
38
|
+
* const table = new DynamoTable({
|
|
39
|
+
* tableName: 'ExampleTable',
|
|
40
|
+
* documentClient,
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* const userEntity = new DynamoEntity({
|
|
44
|
+
* table,
|
|
45
|
+
* schema: z.object({
|
|
46
|
+
* userId: z.string(),
|
|
47
|
+
* name: z.string(),
|
|
48
|
+
* email: z.string(),
|
|
49
|
+
* age: z.number(),
|
|
50
|
+
* }),
|
|
51
|
+
* partitionKey: user => key('USER', user.userId),
|
|
52
|
+
* sortKey: () => 'METADATA',
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* const batchProjectedGetCommand = new BatchProjectedGet({
|
|
56
|
+
* keys: [
|
|
57
|
+
* { userId: 'user1' },
|
|
58
|
+
* { userId: 'user2' },
|
|
59
|
+
* ],
|
|
60
|
+
* projection: ['name', 'email'],
|
|
61
|
+
* projectionSchema: z.object({
|
|
62
|
+
* name: z.string(),
|
|
63
|
+
* email: z.string(),
|
|
64
|
+
* }),
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* const { items } = await userEntity.send(batchProjectedGetCommand);
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
17
70
|
declare class BatchProjectedGet<Schema extends ZodObject, ProjectionSchema extends ZodObject> implements BaseCommand<BatchProjectedGetResult<ProjectionSchema>, Schema> {
|
|
18
71
|
#private;
|
|
19
72
|
constructor(config: BatchProjectedGetConfig<Schema, ProjectionSchema>);
|
|
@@ -5,6 +5,48 @@ import { parseProjection } from '../projections/projection-parser.mjs';
|
|
|
5
5
|
import pMap from 'p-map';
|
|
6
6
|
|
|
7
7
|
var _BatchProjectedGet_config;
|
|
8
|
+
/**
|
|
9
|
+
* Command to retrieve specific attributes of multiple items by primary keys in a single operation.
|
|
10
|
+
*
|
|
11
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
12
|
+
* @template ProjectionSchema - The Zod schema defining the structure of the projected attributes.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { DynamoTable, DynamoEntity, key, BatchProjectedGet } from 'dynamo-document-builder';
|
|
17
|
+
*
|
|
18
|
+
* const table = new DynamoTable({
|
|
19
|
+
* tableName: 'ExampleTable',
|
|
20
|
+
* documentClient,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* const userEntity = new DynamoEntity({
|
|
24
|
+
* table,
|
|
25
|
+
* schema: z.object({
|
|
26
|
+
* userId: z.string(),
|
|
27
|
+
* name: z.string(),
|
|
28
|
+
* email: z.string(),
|
|
29
|
+
* age: z.number(),
|
|
30
|
+
* }),
|
|
31
|
+
* partitionKey: user => key('USER', user.userId),
|
|
32
|
+
* sortKey: () => 'METADATA',
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* const batchProjectedGetCommand = new BatchProjectedGet({
|
|
36
|
+
* keys: [
|
|
37
|
+
* { userId: 'user1' },
|
|
38
|
+
* { userId: 'user2' },
|
|
39
|
+
* ],
|
|
40
|
+
* projection: ['name', 'email'],
|
|
41
|
+
* projectionSchema: z.object({
|
|
42
|
+
* name: z.string(),
|
|
43
|
+
* email: z.string(),
|
|
44
|
+
* }),
|
|
45
|
+
* });
|
|
46
|
+
*
|
|
47
|
+
* const { items } = await userEntity.send(batchProjectedGetCommand);
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
8
50
|
class BatchProjectedGet {
|
|
9
51
|
constructor(config) {
|
|
10
52
|
_BatchProjectedGet_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-projected-get.mjs","sources":["../../src/commands/batch-projected-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"batch-projected-get.mjs","sources":["../../src/commands/batch-projected-get.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,44 @@ var libDynamodb = require('@aws-sdk/lib-dynamodb');
|
|
|
6
6
|
var pMap = require('p-map');
|
|
7
7
|
|
|
8
8
|
var _BatchWrite_config;
|
|
9
|
+
/**
|
|
10
|
+
* Command to put and/or delete multiple items in a single operation.
|
|
11
|
+
*
|
|
12
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { DynamoTable, DynamoEntity, key, BatchWrite } from 'dynamo-document-builder';
|
|
17
|
+
*
|
|
18
|
+
* const table = new DynamoTable({
|
|
19
|
+
* tableName: 'ExampleTable',
|
|
20
|
+
* documentClient,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* const todoEntity = new DynamoEntity({
|
|
24
|
+
* table,
|
|
25
|
+
* schema: z.object({
|
|
26
|
+
* userId: z.string(),
|
|
27
|
+
* todoId: z.string(),
|
|
28
|
+
* title: z.string(),
|
|
29
|
+
* }),
|
|
30
|
+
* partitionKey: todo => key('USER', todo.userId),
|
|
31
|
+
* sortKey: todo => key('TODO', todo.todoId),
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* const batchWriteCommand = new BatchWrite({
|
|
35
|
+
* items: [
|
|
36
|
+
* { userId: 'user1', todoId: 'todo1', title: 'Task 1' },
|
|
37
|
+
* { userId: 'user2', todoId: 'todo2', title: 'Task 2' },
|
|
38
|
+
* ],
|
|
39
|
+
* deletes: [
|
|
40
|
+
* { userId: 'user3', todoId: 'todo3' },
|
|
41
|
+
* ],
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* const { unprocessedPuts, unprocessedDeletes } = await todoEntity.send(batchWriteCommand);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
9
47
|
class BatchWrite {
|
|
10
48
|
constructor(config) {
|
|
11
49
|
_BatchWrite_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-write.cjs","sources":["../../src/commands/batch-write.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","__awaiter","BATCH_WRITE_VALIDATION_CONCURRENCY","BatchWriteCommand"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"batch-write.cjs","sources":["../../src/commands/batch-write.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","__awaiter","BATCH_WRITE_VALIDATION_CONCURRENCY","BatchWriteCommand"],"mappings":"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"}
|
|
@@ -1,21 +1,69 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EntitySchema } from '../core/index.js';
|
|
2
2
|
import * as zod_v4 from 'zod/v4';
|
|
3
3
|
import { ZodObject } from 'zod/v4';
|
|
4
|
-
import { BaseConfig, BaseResult, BaseCommand } from './
|
|
4
|
+
import { BaseConfig, BaseResult, BaseCommand } from './index.js';
|
|
5
5
|
import { DynamoEntity } from '../core/entity.js';
|
|
6
|
-
import { EntitySchema } from '../core/core-types.js';
|
|
7
6
|
import { ReturnItemCollectionMetrics, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
|
|
7
|
+
import { DynamoKey } from '../core/key.js';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the BatchWrite command.
|
|
11
|
+
*
|
|
12
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
13
|
+
*/
|
|
9
14
|
type BatchWriteConfig<Schema extends ZodObject> = BaseConfig & {
|
|
10
15
|
items?: Array<EntitySchema<Schema>>;
|
|
11
16
|
deletes?: Array<Partial<EntitySchema<Schema>>>;
|
|
12
17
|
returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
|
|
13
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Result of the BatchWrite command.
|
|
21
|
+
*
|
|
22
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
23
|
+
*/
|
|
14
24
|
type BatchWriteResult<Schema extends ZodObject> = BaseResult & {
|
|
15
25
|
unprocessedPuts?: Array<EntitySchema<Schema>>;
|
|
16
26
|
unprocessedDeletes?: Array<Partial<EntitySchema<Schema>>>;
|
|
17
27
|
itemColectionMetrics?: ItemCollectionMetrics;
|
|
18
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Command to put and/or delete multiple items in a single operation.
|
|
31
|
+
*
|
|
32
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { DynamoTable, DynamoEntity, key, BatchWrite } from 'dynamo-document-builder';
|
|
37
|
+
*
|
|
38
|
+
* const table = new DynamoTable({
|
|
39
|
+
* tableName: 'ExampleTable',
|
|
40
|
+
* documentClient,
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* const todoEntity = new DynamoEntity({
|
|
44
|
+
* table,
|
|
45
|
+
* schema: z.object({
|
|
46
|
+
* userId: z.string(),
|
|
47
|
+
* todoId: z.string(),
|
|
48
|
+
* title: z.string(),
|
|
49
|
+
* }),
|
|
50
|
+
* partitionKey: todo => key('USER', todo.userId),
|
|
51
|
+
* sortKey: todo => key('TODO', todo.todoId),
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* const batchWriteCommand = new BatchWrite({
|
|
55
|
+
* items: [
|
|
56
|
+
* { userId: 'user1', todoId: 'todo1', title: 'Task 1' },
|
|
57
|
+
* { userId: 'user2', todoId: 'todo2', title: 'Task 2' },
|
|
58
|
+
* ],
|
|
59
|
+
* deletes: [
|
|
60
|
+
* { userId: 'user3', todoId: 'todo3' },
|
|
61
|
+
* ],
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* const { unprocessedPuts, unprocessedDeletes } = await todoEntity.send(batchWriteCommand);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
19
67
|
declare class BatchWrite<Schema extends ZodObject> implements BaseCommand<BatchWriteResult<Schema>, Schema> {
|
|
20
68
|
#private;
|
|
21
69
|
constructor(config: BatchWriteConfig<Schema>);
|
|
@@ -4,6 +4,44 @@ import { BatchWriteCommand } from '@aws-sdk/lib-dynamodb';
|
|
|
4
4
|
import pMap from 'p-map';
|
|
5
5
|
|
|
6
6
|
var _BatchWrite_config;
|
|
7
|
+
/**
|
|
8
|
+
* Command to put and/or delete multiple items in a single operation.
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { DynamoTable, DynamoEntity, key, BatchWrite } from 'dynamo-document-builder';
|
|
15
|
+
*
|
|
16
|
+
* const table = new DynamoTable({
|
|
17
|
+
* tableName: 'ExampleTable',
|
|
18
|
+
* documentClient,
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* const todoEntity = new DynamoEntity({
|
|
22
|
+
* table,
|
|
23
|
+
* schema: z.object({
|
|
24
|
+
* userId: z.string(),
|
|
25
|
+
* todoId: z.string(),
|
|
26
|
+
* title: z.string(),
|
|
27
|
+
* }),
|
|
28
|
+
* partitionKey: todo => key('USER', todo.userId),
|
|
29
|
+
* sortKey: todo => key('TODO', todo.todoId),
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* const batchWriteCommand = new BatchWrite({
|
|
33
|
+
* items: [
|
|
34
|
+
* { userId: 'user1', todoId: 'todo1', title: 'Task 1' },
|
|
35
|
+
* { userId: 'user2', todoId: 'todo2', title: 'Task 2' },
|
|
36
|
+
* ],
|
|
37
|
+
* deletes: [
|
|
38
|
+
* { userId: 'user3', todoId: 'todo3' },
|
|
39
|
+
* ],
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const { unprocessedPuts, unprocessedDeletes } = await todoEntity.send(batchWriteCommand);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
7
45
|
class BatchWrite {
|
|
8
46
|
constructor(config) {
|
|
9
47
|
_BatchWrite_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-write.mjs","sources":["../../src/commands/batch-write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"batch-write.mjs","sources":["../../src/commands/batch-write.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,43 @@ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
|
|
|
4
4
|
var conditions_conditionParser = require('../conditions/condition-parser.cjs');
|
|
5
5
|
|
|
6
6
|
var _ConditionCheck_config;
|
|
7
|
+
/**
|
|
8
|
+
* Command to verify a condition without modifying data in a transaction.
|
|
9
|
+
*
|
|
10
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { DynamoTable, DynamoEntity, key, TransactWrite, ConditionCheck, Update } from 'dynamo-document-builder';
|
|
15
|
+
*
|
|
16
|
+
* const table = new DynamoTable({
|
|
17
|
+
* tableName: 'ExampleTable',
|
|
18
|
+
* documentClient,
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* const userEntity = new DynamoEntity({
|
|
22
|
+
* table,
|
|
23
|
+
* schema: z.object({
|
|
24
|
+
* userId: z.string(),
|
|
25
|
+
* balance: z.number(),
|
|
26
|
+
* }),
|
|
27
|
+
* partitionKey: user => key('USER', user.userId),
|
|
28
|
+
* sortKey: () => 'METADATA',
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const transactWriteCommand = new TransactWrite({
|
|
32
|
+
* writes: [
|
|
33
|
+
* new ConditionCheck({
|
|
34
|
+
* key: { userId: 'user1' },
|
|
35
|
+
* condition: { balance: greaterThan(100) },
|
|
36
|
+
* }),
|
|
37
|
+
* new Update({ key: { userId: 'user2' }, update: { balance: add(50) } }),
|
|
38
|
+
* ],
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* await userEntity.send(transactWriteCommand);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
7
44
|
class ConditionCheck {
|
|
8
45
|
constructor(config) {
|
|
9
46
|
_ConditionCheck_config.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-check.cjs","sources":["../../src/commands/condition-check.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseCondition","__classPrivateFieldGet"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"condition-check.cjs","sources":["../../src/commands/condition-check.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseCondition","__classPrivateFieldGet"],"mappings":";;;;;;AAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;MACU,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAY,MAAoC,EAAA;QAFhD,sBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,sBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,uBAAuB,CAClC,MAA4B,EAAA;;AAE5B,YAAA,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,GAAGC,yCAAc,CAACC,gCAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS,CAAC;YAC9F,OAAO;AACL,gBAAA,cAAc,gCACZ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAACA,gCAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC,EAC7C,mBAAmB,EAAE,mBAAmB,EAAA,EACrC,sBAAsB,CAAC,2BAA2B,EAAE,CAAA,EAAA,EACvD,mCAAmC,EAAEA,gCAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,mCAAmC,EAAA,CACtF;aACF;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
|
|
@@ -1,15 +1,57 @@
|
|
|
1
|
-
import { Condition } from '../conditions/
|
|
1
|
+
import { Condition } from '../conditions/index.js';
|
|
2
2
|
import { DynamoEntity } from '../core/entity.js';
|
|
3
|
-
import { EntitySchema, TransactWriteOperation } from '../core/
|
|
3
|
+
import { EntitySchema, TransactWriteOperation } from '../core/index.js';
|
|
4
4
|
import { ReturnValuesOnConditionCheckFailure } from '@aws-sdk/client-dynamodb';
|
|
5
|
-
import { WriteTransactable } from './
|
|
5
|
+
import { WriteTransactable } from './index.js';
|
|
6
6
|
import { ZodObject } from 'zod/v4';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for the ConditionCheck command.
|
|
10
|
+
*
|
|
11
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
12
|
+
*/
|
|
8
13
|
type ConditionCheckConfig<Schema extends ZodObject> = {
|
|
9
14
|
key: Partial<EntitySchema<Schema>>;
|
|
10
15
|
condition: Condition;
|
|
11
16
|
returnValuesOnConditionCheckFailure?: ReturnValuesOnConditionCheckFailure;
|
|
12
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Command to verify a condition without modifying data in a transaction.
|
|
20
|
+
*
|
|
21
|
+
* @template Schema - The Zod schema defining the structure of the entity.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { DynamoTable, DynamoEntity, key, TransactWrite, ConditionCheck, Update } from 'dynamo-document-builder';
|
|
26
|
+
*
|
|
27
|
+
* const table = new DynamoTable({
|
|
28
|
+
* tableName: 'ExampleTable',
|
|
29
|
+
* documentClient,
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* const userEntity = new DynamoEntity({
|
|
33
|
+
* table,
|
|
34
|
+
* schema: z.object({
|
|
35
|
+
* userId: z.string(),
|
|
36
|
+
* balance: z.number(),
|
|
37
|
+
* }),
|
|
38
|
+
* partitionKey: user => key('USER', user.userId),
|
|
39
|
+
* sortKey: () => 'METADATA',
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* const transactWriteCommand = new TransactWrite({
|
|
43
|
+
* writes: [
|
|
44
|
+
* new ConditionCheck({
|
|
45
|
+
* key: { userId: 'user1' },
|
|
46
|
+
* condition: { balance: greaterThan(100) },
|
|
47
|
+
* }),
|
|
48
|
+
* new Update({ key: { userId: 'user2' }, update: { balance: add(50) } }),
|
|
49
|
+
* ],
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* await userEntity.send(transactWriteCommand);
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
13
55
|
declare class ConditionCheck<Schema extends ZodObject> implements WriteTransactable<Schema> {
|
|
14
56
|
#private;
|
|
15
57
|
constructor(config: ConditionCheckConfig<Schema>);
|