@model-ts/dynamodb 0.1.2 → 0.2.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/CHANGELOG.md +6 -0
- package/README.md +169 -1
- package/dist/cjs/__test__/client.test.js +85 -57
- package/dist/cjs/__test__/client.test.js.map +1 -1
- package/dist/cjs/client.js +2 -2
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/dynamodb-model.d.ts +4 -0
- package/dist/cjs/operations.d.ts +4 -0
- package/dist/cjs/operations.js.map +1 -1
- package/dist/cjs/pagination.d.ts +10 -2
- package/dist/cjs/pagination.js +19 -4
- package/dist/cjs/pagination.js.map +1 -1
- package/dist/cjs/provider.d.ts +16 -0
- package/dist/cjs/provider.js +4 -0
- package/dist/cjs/provider.js.map +1 -1
- package/dist/cjs/sandbox.js +24 -0
- package/dist/cjs/sandbox.js.map +1 -1
- package/dist/esm/__test__/client.test.js +86 -58
- package/dist/esm/__test__/client.test.js.map +1 -1
- package/dist/esm/client.js +2 -2
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/dynamodb-model.d.ts +4 -0
- package/dist/esm/operations.d.ts +4 -0
- package/dist/esm/operations.js.map +1 -1
- package/dist/esm/pagination.d.ts +10 -2
- package/dist/esm/pagination.js +19 -4
- package/dist/esm/pagination.js.map +1 -1
- package/dist/esm/provider.d.ts +16 -0
- package/dist/esm/provider.js +4 -0
- package/dist/esm/provider.js.map +1 -1
- package/dist/esm/sandbox.js +24 -0
- package/dist/esm/sandbox.js.map +1 -1
- package/package.json +1 -1
- package/src/__test__/client.test.ts +86 -58
- package/src/client.ts +13 -8
- package/src/dynamodb-model.ts +16 -14
- package/src/operations.ts +4 -0
- package/src/pagination.ts +42 -8
- package/src/provider.ts +5 -1
- package/src/sandbox.ts +24 -0
package/dist/esm/sandbox.js
CHANGED
|
@@ -27,6 +27,10 @@ export const createTable = () => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
27
27
|
{ AttributeName: "GSI2SK", AttributeType: "S" },
|
|
28
28
|
{ AttributeName: "GSI3PK", AttributeType: "S" },
|
|
29
29
|
{ AttributeName: "GSI3SK", AttributeType: "S" },
|
|
30
|
+
{ AttributeName: "GSI4PK", AttributeType: "S" },
|
|
31
|
+
{ AttributeName: "GSI4SK", AttributeType: "S" },
|
|
32
|
+
{ AttributeName: "GSI5PK", AttributeType: "S" },
|
|
33
|
+
{ AttributeName: "GSI5SK", AttributeType: "S" },
|
|
30
34
|
],
|
|
31
35
|
KeySchema: [
|
|
32
36
|
{ AttributeName: "PK", KeyType: "HASH" },
|
|
@@ -63,6 +67,26 @@ export const createTable = () => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
63
67
|
ProjectionType: "ALL",
|
|
64
68
|
},
|
|
65
69
|
},
|
|
70
|
+
{
|
|
71
|
+
IndexName: "GSI4",
|
|
72
|
+
KeySchema: [
|
|
73
|
+
{ AttributeName: "GSI4PK", KeyType: "HASH" },
|
|
74
|
+
{ AttributeName: "GSI4SK", KeyType: "RANGE" },
|
|
75
|
+
],
|
|
76
|
+
Projection: {
|
|
77
|
+
ProjectionType: "ALL",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
IndexName: "GSI5",
|
|
82
|
+
KeySchema: [
|
|
83
|
+
{ AttributeName: "GSI5PK", KeyType: "HASH" },
|
|
84
|
+
{ AttributeName: "GSI5SK", KeyType: "RANGE" },
|
|
85
|
+
],
|
|
86
|
+
Projection: {
|
|
87
|
+
ProjectionType: "ALL",
|
|
88
|
+
},
|
|
89
|
+
},
|
|
66
90
|
],
|
|
67
91
|
BillingMode: "PAY_PER_REQUEST",
|
|
68
92
|
})
|
package/dist/esm/sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ItemNotFoundError,
|
|
9
9
|
ConditionalCheckFailedError,
|
|
10
10
|
RaceConditionError,
|
|
11
|
-
BulkWriteTransactionError
|
|
11
|
+
BulkWriteTransactionError
|
|
12
12
|
} from "../errors"
|
|
13
13
|
|
|
14
14
|
const client = new Client({ tableName: "table" })
|
|
@@ -16,7 +16,7 @@ const provider = getProvider(client)
|
|
|
16
16
|
|
|
17
17
|
const SIMPLE_CODEC = t.type({
|
|
18
18
|
foo: t.string,
|
|
19
|
-
bar: t.number
|
|
19
|
+
bar: t.number
|
|
20
20
|
})
|
|
21
21
|
|
|
22
22
|
class Simple extends model("Simple", SIMPLE_CODEC, provider) {
|
|
@@ -63,6 +63,18 @@ class MultiGSI extends model("MultiGSI", SIMPLE_CODEC, provider) {
|
|
|
63
63
|
get GSI3SK() {
|
|
64
64
|
return `GSI3SK#${this.bar}${this.bar}`
|
|
65
65
|
}
|
|
66
|
+
get GSI4PK() {
|
|
67
|
+
return `GSI4PK#FIXED`
|
|
68
|
+
}
|
|
69
|
+
get GSI4SK() {
|
|
70
|
+
return `GSI4SK#${this.bar}${this.bar}`
|
|
71
|
+
}
|
|
72
|
+
get GSI5PK() {
|
|
73
|
+
return `GSI5PK#FIXED`
|
|
74
|
+
}
|
|
75
|
+
get GSI5SK() {
|
|
76
|
+
return `GSI5SK#${this.bar}${this.bar}`
|
|
77
|
+
}
|
|
66
78
|
}
|
|
67
79
|
|
|
68
80
|
class A extends model(
|
|
@@ -191,6 +203,10 @@ describe("put", () => {
|
|
|
191
203
|
+ "GSI2SK": "GSI2SK#FIXED",
|
|
192
204
|
+ "GSI3PK": "GSI3PK#FIXED",
|
|
193
205
|
+ "GSI3SK": "GSI3SK#4242",
|
|
206
|
+
+ "GSI4PK": "GSI4PK#FIXED",
|
|
207
|
+
+ "GSI4SK": "GSI4SK#4242",
|
|
208
|
+
+ "GSI5PK": "GSI5PK#FIXED",
|
|
209
|
+
+ "GSI5SK": "GSI5SK#4242",
|
|
194
210
|
+ "PK": "PK#yes",
|
|
195
211
|
+ "SK": "SK#42",
|
|
196
212
|
+ "_docVersion": 0,
|
|
@@ -287,6 +303,10 @@ describe("put", () => {
|
|
|
287
303
|
+ "GSI2SK": "GSI2SK#FIXED",
|
|
288
304
|
+ "GSI3PK": "GSI3PK#FIXED",
|
|
289
305
|
+ "GSI3SK": "GSI3SK#4242",
|
|
306
|
+
+ "GSI4PK": "GSI4PK#FIXED",
|
|
307
|
+
+ "GSI4SK": "GSI4SK#4242",
|
|
308
|
+
+ "GSI5PK": "GSI5PK#FIXED",
|
|
309
|
+
+ "GSI5SK": "GSI5SK#4242",
|
|
290
310
|
+ "PK": "PK#yes",
|
|
291
311
|
+ "SK": "SK#42",
|
|
292
312
|
+ "_docVersion": 0,
|
|
@@ -311,7 +331,7 @@ describe("put", () => {
|
|
|
311
331
|
|
|
312
332
|
await expect(
|
|
313
333
|
MultiGSI.put(new MultiGSI({ foo: "yes", bar: 42 }), {
|
|
314
|
-
IgnoreExistence: true
|
|
334
|
+
IgnoreExistence: true
|
|
315
335
|
})
|
|
316
336
|
).resolves.toBeInstanceOf(MultiGSI)
|
|
317
337
|
})
|
|
@@ -331,7 +351,7 @@ describe("get", () => {
|
|
|
331
351
|
|
|
332
352
|
const result = await Simple.get({
|
|
333
353
|
PK: item.keys().PK,
|
|
334
|
-
SK: item.keys().SK
|
|
354
|
+
SK: item.keys().SK
|
|
335
355
|
})
|
|
336
356
|
|
|
337
357
|
expect(result.values()).toMatchInlineSnapshot(`
|
|
@@ -397,8 +417,8 @@ describe("delete", () => {
|
|
|
397
417
|
_model: Simple,
|
|
398
418
|
key: {
|
|
399
419
|
PK: item.keys().PK,
|
|
400
|
-
SK: item.keys().SK
|
|
401
|
-
}
|
|
420
|
+
SK: item.keys().SK
|
|
421
|
+
}
|
|
402
422
|
})
|
|
403
423
|
|
|
404
424
|
expect(result).toBeNull()
|
|
@@ -431,7 +451,7 @@ describe("delete", () => {
|
|
|
431
451
|
|
|
432
452
|
const result = await Simple.delete({
|
|
433
453
|
PK: item.keys().PK,
|
|
434
|
-
SK: item.keys().SK
|
|
454
|
+
SK: item.keys().SK
|
|
435
455
|
})
|
|
436
456
|
|
|
437
457
|
expect(result).toBeNull()
|
|
@@ -516,13 +536,17 @@ describe("softDelete", () => {
|
|
|
516
536
|
- First value
|
|
517
537
|
+ Second value
|
|
518
538
|
|
|
519
|
-
@@ -1,
|
|
539
|
+
@@ -1,25 +1,27 @@
|
|
520
540
|
Object {
|
|
521
541
|
- "PK#hello__SK#42": Object {
|
|
522
542
|
- "GSI2PK": "GSI2PK#hellohello",
|
|
523
543
|
- "GSI2SK": "GSI2SK#FIXED",
|
|
524
544
|
- "GSI3PK": "GSI3PK#FIXED",
|
|
525
545
|
- "GSI3SK": "GSI3SK#4242",
|
|
546
|
+
- "GSI4PK": "GSI4PK#FIXED",
|
|
547
|
+
- "GSI4SK": "GSI4SK#4242",
|
|
548
|
+
- "GSI5PK": "GSI5PK#FIXED",
|
|
549
|
+
- "GSI5SK": "GSI5SK#4242",
|
|
526
550
|
- "PK": "PK#hello",
|
|
527
551
|
- "SK": "SK#42",
|
|
528
552
|
+ "$$DELETED$$PK#hello__$$DELETED$$SK#42": Object {
|
|
@@ -530,6 +554,10 @@ describe("softDelete", () => {
|
|
|
530
554
|
+ "GSI2SK": "$$DELETED$$GSI2SK#FIXED",
|
|
531
555
|
+ "GSI3PK": "$$DELETED$$GSI3PK#FIXED",
|
|
532
556
|
+ "GSI3SK": "$$DELETED$$GSI3SK#4242",
|
|
557
|
+
+ "GSI4PK": "$$DELETED$$GSI4PK#FIXED",
|
|
558
|
+
+ "GSI4SK": "$$DELETED$$GSI4SK#4242",
|
|
559
|
+
+ "GSI5PK": "$$DELETED$$GSI5PK#FIXED",
|
|
560
|
+
+ "GSI5SK": "$$DELETED$$GSI5SK#4242",
|
|
533
561
|
+ "PK": "$$DELETED$$PK#hello",
|
|
534
562
|
+ "SK": "$$DELETED$$SK#42",
|
|
535
563
|
+ "_deletedAt": "2021-05-01T08:00:00.000Z",
|
|
@@ -798,7 +826,7 @@ describe("query", () => {
|
|
|
798
826
|
await client.query(
|
|
799
827
|
{
|
|
800
828
|
KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
|
|
801
|
-
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
|
|
829
|
+
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
|
|
802
830
|
},
|
|
803
831
|
{ a: A, b: B, union: Union }
|
|
804
832
|
)
|
|
@@ -822,7 +850,7 @@ describe("query", () => {
|
|
|
822
850
|
await client.query(
|
|
823
851
|
{
|
|
824
852
|
KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
|
|
825
|
-
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
|
|
853
|
+
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
|
|
826
854
|
},
|
|
827
855
|
{ a: A, b: B, union: Union }
|
|
828
856
|
)
|
|
@@ -858,7 +886,7 @@ describe("query", () => {
|
|
|
858
886
|
const { a, b, union, _unknown, meta } = await client.query(
|
|
859
887
|
{
|
|
860
888
|
KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
|
|
861
|
-
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
|
|
889
|
+
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
|
|
862
890
|
},
|
|
863
891
|
{ a: A, b: B, union: Union }
|
|
864
892
|
)
|
|
@@ -866,9 +894,9 @@ describe("query", () => {
|
|
|
866
894
|
expect({
|
|
867
895
|
meta: meta,
|
|
868
896
|
_unknown: _unknown,
|
|
869
|
-
a: a.map(
|
|
870
|
-
b: b.map(
|
|
871
|
-
union: union.map(
|
|
897
|
+
a: a.map(item => item.values()),
|
|
898
|
+
b: b.map(item => item.values()),
|
|
899
|
+
union: union.map(item => item.values())
|
|
872
900
|
}).toMatchInlineSnapshot(`
|
|
873
901
|
Object {
|
|
874
902
|
"_unknown": Array [
|
|
@@ -931,7 +959,7 @@ describe("query", () => {
|
|
|
931
959
|
{
|
|
932
960
|
KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
|
|
933
961
|
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
|
|
934
|
-
Limit: 30
|
|
962
|
+
Limit: 30
|
|
935
963
|
},
|
|
936
964
|
{ a: A, b: B }
|
|
937
965
|
)
|
|
@@ -946,7 +974,7 @@ describe("query", () => {
|
|
|
946
974
|
KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
|
|
947
975
|
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
|
|
948
976
|
Limit: 30,
|
|
949
|
-
ExclusiveStartKey: firstPage.meta.lastEvaluatedKey
|
|
977
|
+
ExclusiveStartKey: firstPage.meta.lastEvaluatedKey
|
|
950
978
|
},
|
|
951
979
|
{ a: A, b: B }
|
|
952
980
|
)
|
|
@@ -974,7 +1002,7 @@ describe("query", () => {
|
|
|
974
1002
|
ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
|
|
975
1003
|
FetchAllPages: true,
|
|
976
1004
|
// You wouldn't set a limit in a real-world use case here to optimize fetching all items.
|
|
977
|
-
Limit: 10
|
|
1005
|
+
Limit: 10
|
|
978
1006
|
},
|
|
979
1007
|
{ a: A, b: B }
|
|
980
1008
|
)
|
|
@@ -1011,16 +1039,16 @@ describe("bulk", () => {
|
|
|
1011
1039
|
new B({
|
|
1012
1040
|
pk: "PK#UPDATE",
|
|
1013
1041
|
sk: "SK#UPDATE",
|
|
1014
|
-
b: "bar"
|
|
1042
|
+
b: "bar"
|
|
1015
1043
|
}).operation("update", { b: "baz" }),
|
|
1016
1044
|
new B({
|
|
1017
1045
|
pk: "PK#COND",
|
|
1018
1046
|
sk: "SK#COND",
|
|
1019
|
-
b: "cond"
|
|
1047
|
+
b: "cond"
|
|
1020
1048
|
}).operation("condition", {
|
|
1021
1049
|
ConditionExpression: "b = :cond",
|
|
1022
|
-
ExpressionAttributeValues: { ":cond": "cond" }
|
|
1023
|
-
})
|
|
1050
|
+
ExpressionAttributeValues: { ":cond": "cond" }
|
|
1051
|
+
})
|
|
1024
1052
|
])
|
|
1025
1053
|
|
|
1026
1054
|
expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
|
|
@@ -1140,7 +1168,7 @@ describe("bulk", () => {
|
|
|
1140
1168
|
"updateRaw",
|
|
1141
1169
|
{ PK: "PK#nicetry", SK: "SK#nope" },
|
|
1142
1170
|
{ a: 234 }
|
|
1143
|
-
)
|
|
1171
|
+
)
|
|
1144
1172
|
])
|
|
1145
1173
|
).rejects.toBeInstanceOf(BulkWriteTransactionError)
|
|
1146
1174
|
|
|
@@ -1168,11 +1196,11 @@ describe("bulk", () => {
|
|
|
1168
1196
|
new B({
|
|
1169
1197
|
pk: "PK#UPDATE",
|
|
1170
1198
|
sk: "SK#UPDATE",
|
|
1171
|
-
b: "bar"
|
|
1199
|
+
b: "bar"
|
|
1172
1200
|
}).operation("update", { b: "baz" }),
|
|
1173
1201
|
...Array.from({ length: 25 }).map((_, i) =>
|
|
1174
1202
|
new A({ pk: `PK#A${i}`, sk: `SK#A${i}`, a: i }).operation("put")
|
|
1175
|
-
)
|
|
1203
|
+
)
|
|
1176
1204
|
])
|
|
1177
1205
|
|
|
1178
1206
|
//#region snapshot
|
|
@@ -1484,7 +1512,7 @@ describe("bulk", () => {
|
|
|
1484
1512
|
"condition",
|
|
1485
1513
|
{ PK: "nicetry", SK: "nope" },
|
|
1486
1514
|
{ ConditionExpression: "attribute_exists(PK)" }
|
|
1487
|
-
)
|
|
1515
|
+
)
|
|
1488
1516
|
])
|
|
1489
1517
|
).rejects.toBeInstanceOf(BulkWriteTransactionError)
|
|
1490
1518
|
|
|
@@ -1518,7 +1546,7 @@ describe("batchGet", () => {
|
|
|
1518
1546
|
two: A.operation("get", { PK: "PK#2", SK: "SK#2" }),
|
|
1519
1547
|
three: A.operation("get", { PK: "PK#3", SK: "SK#3" }),
|
|
1520
1548
|
four: A.operation("get", { PK: "PK#4", SK: "SK#4" }),
|
|
1521
|
-
duplicate: A.operation("get", { PK: "PK#1", SK: "SK#1" })
|
|
1549
|
+
duplicate: A.operation("get", { PK: "PK#1", SK: "SK#1" })
|
|
1522
1550
|
})
|
|
1523
1551
|
).rejects.toBeInstanceOf(ItemNotFoundError)
|
|
1524
1552
|
})
|
|
@@ -1535,7 +1563,7 @@ describe("batchGet", () => {
|
|
|
1535
1563
|
two: A.operation("get", { PK: "PK#2", SK: "SK#2" }),
|
|
1536
1564
|
duplicate: A.operation("get", { PK: "PK#1", SK: "SK#1" }),
|
|
1537
1565
|
error: A.operation("get", { PK: "PK#error", SK: "SK#error" }),
|
|
1538
|
-
error2: A.operation("get", { PK: "PK#error2", SK: "SK#error2" })
|
|
1566
|
+
error2: A.operation("get", { PK: "PK#error2", SK: "SK#error2" })
|
|
1539
1567
|
},
|
|
1540
1568
|
{ individualErrors: true }
|
|
1541
1569
|
)
|
|
@@ -1559,7 +1587,7 @@ describe("batchGet", () => {
|
|
|
1559
1587
|
two: A.operation("get", { PK: "PK#2", SK: "SK#2" }),
|
|
1560
1588
|
three: A.operation("get", { PK: "PK#3", SK: "SK#3" }),
|
|
1561
1589
|
four: A.operation("get", { PK: "PK#4", SK: "SK#4" }),
|
|
1562
|
-
duplicate: A.operation("get", { PK: "PK#1", SK: "SK#1" })
|
|
1590
|
+
duplicate: A.operation("get", { PK: "PK#1", SK: "SK#1" })
|
|
1563
1591
|
})
|
|
1564
1592
|
|
|
1565
1593
|
expect(
|
|
@@ -1702,8 +1730,8 @@ describe("load", () => {
|
|
|
1702
1730
|
)
|
|
1703
1731
|
|
|
1704
1732
|
expect(results.length).toBe(234)
|
|
1705
|
-
expect(results.filter(
|
|
1706
|
-
expect(results.filter(
|
|
1733
|
+
expect(results.filter(item => item instanceof C).length).toBe(123)
|
|
1734
|
+
expect(results.filter(item => item instanceof D).length).toBe(111)
|
|
1707
1735
|
expect(spy).toHaveBeenCalledTimes(3)
|
|
1708
1736
|
|
|
1709
1737
|
spy.mockReset()
|
|
@@ -1778,8 +1806,8 @@ describe("loadMany", () => {
|
|
|
1778
1806
|
)
|
|
1779
1807
|
|
|
1780
1808
|
expect(results.length).toBe(234)
|
|
1781
|
-
expect(results.filter(
|
|
1782
|
-
expect(results.filter(
|
|
1809
|
+
expect(results.filter(item => item instanceof C).length).toBe(123)
|
|
1810
|
+
expect(results.filter(item => item instanceof D).length).toBe(111)
|
|
1783
1811
|
expect(spy).toHaveBeenCalledTimes(3)
|
|
1784
1812
|
|
|
1785
1813
|
spy.mockReset()
|
|
@@ -1804,7 +1832,7 @@ describe("paginate", () => {
|
|
|
1804
1832
|
{},
|
|
1805
1833
|
{
|
|
1806
1834
|
KeyConditionExpression: "PK = :pk",
|
|
1807
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1835
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1808
1836
|
}
|
|
1809
1837
|
)
|
|
1810
1838
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1824,7 +1852,7 @@ describe("paginate", () => {
|
|
|
1824
1852
|
{ after: page1.pageInfo.endCursor },
|
|
1825
1853
|
{
|
|
1826
1854
|
KeyConditionExpression: "PK = :pk",
|
|
1827
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1855
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1828
1856
|
}
|
|
1829
1857
|
)
|
|
1830
1858
|
expect(page2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1844,7 +1872,7 @@ describe("paginate", () => {
|
|
|
1844
1872
|
{ after: page2.pageInfo.endCursor },
|
|
1845
1873
|
{
|
|
1846
1874
|
KeyConditionExpression: "PK = :pk",
|
|
1847
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1875
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1848
1876
|
}
|
|
1849
1877
|
)
|
|
1850
1878
|
expect(page3.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1865,7 +1893,7 @@ describe("paginate", () => {
|
|
|
1865
1893
|
{ before: page3.pageInfo.startCursor },
|
|
1866
1894
|
{
|
|
1867
1895
|
KeyConditionExpression: "PK = :pk",
|
|
1868
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1896
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1869
1897
|
}
|
|
1870
1898
|
)
|
|
1871
1899
|
expect(backwardsPage2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1885,7 +1913,7 @@ describe("paginate", () => {
|
|
|
1885
1913
|
{ before: backwardsPage2.pageInfo.startCursor },
|
|
1886
1914
|
{
|
|
1887
1915
|
KeyConditionExpression: "PK = :pk",
|
|
1888
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1916
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1889
1917
|
}
|
|
1890
1918
|
)
|
|
1891
1919
|
expect(backwardsPage1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1916,7 +1944,7 @@ describe("paginate", () => {
|
|
|
1916
1944
|
{},
|
|
1917
1945
|
{
|
|
1918
1946
|
KeyConditionExpression: "PK = :pk",
|
|
1919
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1947
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1920
1948
|
}
|
|
1921
1949
|
)
|
|
1922
1950
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1936,7 +1964,7 @@ describe("paginate", () => {
|
|
|
1936
1964
|
{ after: page1.pageInfo.endCursor },
|
|
1937
1965
|
{
|
|
1938
1966
|
KeyConditionExpression: "PK = :pk",
|
|
1939
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1967
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1940
1968
|
}
|
|
1941
1969
|
)
|
|
1942
1970
|
expect(page2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1956,7 +1984,7 @@ describe("paginate", () => {
|
|
|
1956
1984
|
{ after: page2.pageInfo.endCursor },
|
|
1957
1985
|
{
|
|
1958
1986
|
KeyConditionExpression: "PK = :pk",
|
|
1959
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1987
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1960
1988
|
}
|
|
1961
1989
|
)
|
|
1962
1990
|
expect(page3.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1977,7 +2005,7 @@ describe("paginate", () => {
|
|
|
1977
2005
|
{ before: page3.pageInfo.startCursor },
|
|
1978
2006
|
{
|
|
1979
2007
|
KeyConditionExpression: "PK = :pk",
|
|
1980
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2008
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
1981
2009
|
}
|
|
1982
2010
|
)
|
|
1983
2011
|
expect(backwardsPage2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -1997,7 +2025,7 @@ describe("paginate", () => {
|
|
|
1997
2025
|
{ before: backwardsPage2.pageInfo.startCursor },
|
|
1998
2026
|
{
|
|
1999
2027
|
KeyConditionExpression: "PK = :pk",
|
|
2000
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2028
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2001
2029
|
}
|
|
2002
2030
|
)
|
|
2003
2031
|
expect(backwardsPage1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2027,7 +2055,7 @@ describe("paginate", () => {
|
|
|
2027
2055
|
{ first: 10 },
|
|
2028
2056
|
{
|
|
2029
2057
|
KeyConditionExpression: "PK = :pk",
|
|
2030
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2058
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2031
2059
|
}
|
|
2032
2060
|
)
|
|
2033
2061
|
expect(page.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2057,7 +2085,7 @@ describe("paginate", () => {
|
|
|
2057
2085
|
{ first: 60 },
|
|
2058
2086
|
{
|
|
2059
2087
|
KeyConditionExpression: "PK = :pk",
|
|
2060
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2088
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2061
2089
|
}
|
|
2062
2090
|
)
|
|
2063
2091
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2088,7 +2116,7 @@ describe("paginate", () => {
|
|
|
2088
2116
|
{},
|
|
2089
2117
|
{
|
|
2090
2118
|
KeyConditionExpression: "PK = :pk",
|
|
2091
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2119
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2092
2120
|
}
|
|
2093
2121
|
)
|
|
2094
2122
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2107,7 +2135,7 @@ describe("paginate", () => {
|
|
|
2107
2135
|
{ after: page1.pageInfo.endCursor },
|
|
2108
2136
|
{
|
|
2109
2137
|
KeyConditionExpression: "PK = :pk",
|
|
2110
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2138
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2111
2139
|
}
|
|
2112
2140
|
)
|
|
2113
2141
|
expect(page2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2126,7 +2154,7 @@ describe("paginate", () => {
|
|
|
2126
2154
|
{ after: page2.pageInfo.endCursor },
|
|
2127
2155
|
{
|
|
2128
2156
|
KeyConditionExpression: "PK = :pk",
|
|
2129
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2157
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2130
2158
|
}
|
|
2131
2159
|
)
|
|
2132
2160
|
expect(page3.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2146,7 +2174,7 @@ describe("paginate", () => {
|
|
|
2146
2174
|
{ before: page3.pageInfo.startCursor },
|
|
2147
2175
|
{
|
|
2148
2176
|
KeyConditionExpression: "PK = :pk",
|
|
2149
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2177
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2150
2178
|
}
|
|
2151
2179
|
)
|
|
2152
2180
|
expect(backwardsPage2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2165,7 +2193,7 @@ describe("paginate", () => {
|
|
|
2165
2193
|
{ before: backwardsPage2.pageInfo.startCursor },
|
|
2166
2194
|
{
|
|
2167
2195
|
KeyConditionExpression: "PK = :pk",
|
|
2168
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2196
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2169
2197
|
}
|
|
2170
2198
|
)
|
|
2171
2199
|
expect(backwardsPage1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2194,7 +2222,7 @@ describe("paginate", () => {
|
|
|
2194
2222
|
{ first: 10 },
|
|
2195
2223
|
{
|
|
2196
2224
|
KeyConditionExpression: "PK = :pk",
|
|
2197
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2225
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2198
2226
|
}
|
|
2199
2227
|
)
|
|
2200
2228
|
expect(page.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2223,7 +2251,7 @@ describe("paginate", () => {
|
|
|
2223
2251
|
{ first: 60 },
|
|
2224
2252
|
{
|
|
2225
2253
|
KeyConditionExpression: "PK = :pk",
|
|
2226
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2254
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2227
2255
|
}
|
|
2228
2256
|
)
|
|
2229
2257
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2255,7 +2283,7 @@ describe("paginate", () => {
|
|
|
2255
2283
|
{},
|
|
2256
2284
|
{
|
|
2257
2285
|
KeyConditionExpression: "PK = :pk",
|
|
2258
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2286
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2259
2287
|
}
|
|
2260
2288
|
)
|
|
2261
2289
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2274,7 +2302,7 @@ describe("paginate", () => {
|
|
|
2274
2302
|
{ after: page1.pageInfo.endCursor },
|
|
2275
2303
|
{
|
|
2276
2304
|
KeyConditionExpression: "PK = :pk",
|
|
2277
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2305
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2278
2306
|
}
|
|
2279
2307
|
)
|
|
2280
2308
|
expect(page2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2293,7 +2321,7 @@ describe("paginate", () => {
|
|
|
2293
2321
|
{ after: page2.pageInfo.endCursor },
|
|
2294
2322
|
{
|
|
2295
2323
|
KeyConditionExpression: "PK = :pk",
|
|
2296
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2324
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2297
2325
|
}
|
|
2298
2326
|
)
|
|
2299
2327
|
expect(page3.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2313,7 +2341,7 @@ describe("paginate", () => {
|
|
|
2313
2341
|
{ before: page3.pageInfo.startCursor },
|
|
2314
2342
|
{
|
|
2315
2343
|
KeyConditionExpression: "PK = :pk",
|
|
2316
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2344
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2317
2345
|
}
|
|
2318
2346
|
)
|
|
2319
2347
|
expect(backwardsPage2.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2332,7 +2360,7 @@ describe("paginate", () => {
|
|
|
2332
2360
|
{ before: backwardsPage2.pageInfo.startCursor },
|
|
2333
2361
|
{
|
|
2334
2362
|
KeyConditionExpression: "PK = :pk",
|
|
2335
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2363
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2336
2364
|
}
|
|
2337
2365
|
)
|
|
2338
2366
|
expect(backwardsPage1.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2362,7 +2390,7 @@ describe("paginate", () => {
|
|
|
2362
2390
|
{ first: 10 },
|
|
2363
2391
|
{
|
|
2364
2392
|
KeyConditionExpression: "PK = :pk",
|
|
2365
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2393
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2366
2394
|
}
|
|
2367
2395
|
)
|
|
2368
2396
|
expect(page.pageInfo).toMatchInlineSnapshot(`
|
|
@@ -2392,7 +2420,7 @@ describe("paginate", () => {
|
|
|
2392
2420
|
{ first: 60 },
|
|
2393
2421
|
{
|
|
2394
2422
|
KeyConditionExpression: "PK = :pk",
|
|
2395
|
-
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2423
|
+
ExpressionAttributeValues: { ":pk": "PK" }
|
|
2396
2424
|
}
|
|
2397
2425
|
)
|
|
2398
2426
|
expect(page1.pageInfo).toMatchInlineSnapshot(`
|
package/src/client.ts
CHANGED
|
@@ -460,9 +460,9 @@ export class Client {
|
|
|
460
460
|
|
|
461
461
|
for (const key in models) {
|
|
462
462
|
try {
|
|
463
|
-
const decoded = (
|
|
464
|
-
key
|
|
465
|
-
|
|
463
|
+
const decoded = (
|
|
464
|
+
models[key] as any as DynamoDBInternals<M>
|
|
465
|
+
).__dynamoDBDecode(item)
|
|
466
466
|
grouped[key].push(decoded as any)
|
|
467
467
|
|
|
468
468
|
// Early exit
|
|
@@ -661,11 +661,8 @@ export class Client {
|
|
|
661
661
|
)
|
|
662
662
|
|
|
663
663
|
if (E.isLeft(result)) {
|
|
664
|
-
const {
|
|
665
|
-
|
|
666
|
-
transactionError,
|
|
667
|
-
rollbackFailure,
|
|
668
|
-
} = result.left
|
|
664
|
+
const { rollbackSuccessful, transactionError, rollbackFailure } =
|
|
665
|
+
result.left
|
|
669
666
|
|
|
670
667
|
if (rollbackSuccessful) throw transactionError
|
|
671
668
|
else throw new BulkWriteRollbackError(rollbackFailure)
|
|
@@ -854,6 +851,10 @@ export class Client {
|
|
|
854
851
|
GSI2SK?: string
|
|
855
852
|
GSI3PK?: string
|
|
856
853
|
GSI3SK?: string
|
|
854
|
+
GSI4PK?: string
|
|
855
|
+
GSI4SK?: string
|
|
856
|
+
GSI5PK?: string
|
|
857
|
+
GSI5SK?: string
|
|
857
858
|
}
|
|
858
859
|
>(item: T): T {
|
|
859
860
|
const prefix = "$$DELETED$$"
|
|
@@ -870,6 +871,10 @@ export class Client {
|
|
|
870
871
|
GSI2SK: maybeWithPrefix(item.GSI2SK),
|
|
871
872
|
GSI3PK: maybeWithPrefix(item.GSI3PK),
|
|
872
873
|
GSI3SK: maybeWithPrefix(item.GSI3SK),
|
|
874
|
+
GSI4PK: maybeWithPrefix(item.GSI4PK),
|
|
875
|
+
GSI4SK: maybeWithPrefix(item.GSI4SK),
|
|
876
|
+
GSI5PK: maybeWithPrefix(item.GSI5PK),
|
|
877
|
+
GSI5SK: maybeWithPrefix(item.GSI5SK),
|
|
873
878
|
}
|
|
874
879
|
}
|
|
875
880
|
}
|
package/src/dynamodb-model.ts
CHANGED
|
@@ -15,17 +15,20 @@ export interface DynamoDBModelInstance extends ModelInstance<string, any> {
|
|
|
15
15
|
|
|
16
16
|
PK: string
|
|
17
17
|
SK: string
|
|
18
|
-
GSI2PK?: string
|
|
19
|
-
GSI2SK?: string
|
|
20
|
-
GSI3PK?: string
|
|
21
|
-
GSI3SK?: string
|
|
18
|
+
GSI2PK?: string
|
|
19
|
+
GSI2SK?: string
|
|
20
|
+
GSI3PK?: string
|
|
21
|
+
GSI3SK?: string
|
|
22
|
+
GSI4PK?: string
|
|
23
|
+
GSI4SK?: string
|
|
24
|
+
GSI5PK?: string
|
|
25
|
+
GSI5SK?: string
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
// export interface DynamoDBModel {}
|
|
25
29
|
|
|
26
|
-
export type DynamoDBModelConstructor<
|
|
27
|
-
T
|
|
28
|
-
> = ModelConstructor<T>
|
|
30
|
+
export type DynamoDBModelConstructor<T extends DynamoDBModelInstance> =
|
|
31
|
+
ModelConstructor<T>
|
|
29
32
|
|
|
30
33
|
export type DynamoDBUnion = Union<
|
|
31
34
|
[
|
|
@@ -37,10 +40,9 @@ export type DynamoDBUnion = Union<
|
|
|
37
40
|
|
|
38
41
|
export type Decodable = DynamoDBModelConstructor<any> | DynamoDBUnion
|
|
39
42
|
|
|
40
|
-
export type DecodableInstance<
|
|
41
|
-
M extends
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
: never
|
|
43
|
+
export type DecodableInstance<M extends Decodable> =
|
|
44
|
+
M extends DynamoDBModelConstructor<any>
|
|
45
|
+
? InstanceType<M>
|
|
46
|
+
: M extends DynamoDBUnion
|
|
47
|
+
? InstanceType<M["_models"][number]>
|
|
48
|
+
: never
|