@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +169 -1
  3. package/dist/cjs/__test__/client.test.js +85 -57
  4. package/dist/cjs/__test__/client.test.js.map +1 -1
  5. package/dist/cjs/client.js +2 -2
  6. package/dist/cjs/client.js.map +1 -1
  7. package/dist/cjs/dynamodb-model.d.ts +4 -0
  8. package/dist/cjs/operations.d.ts +4 -0
  9. package/dist/cjs/operations.js.map +1 -1
  10. package/dist/cjs/pagination.d.ts +10 -2
  11. package/dist/cjs/pagination.js +19 -4
  12. package/dist/cjs/pagination.js.map +1 -1
  13. package/dist/cjs/provider.d.ts +16 -0
  14. package/dist/cjs/provider.js +4 -0
  15. package/dist/cjs/provider.js.map +1 -1
  16. package/dist/cjs/sandbox.js +24 -0
  17. package/dist/cjs/sandbox.js.map +1 -1
  18. package/dist/esm/__test__/client.test.js +86 -58
  19. package/dist/esm/__test__/client.test.js.map +1 -1
  20. package/dist/esm/client.js +2 -2
  21. package/dist/esm/client.js.map +1 -1
  22. package/dist/esm/dynamodb-model.d.ts +4 -0
  23. package/dist/esm/operations.d.ts +4 -0
  24. package/dist/esm/operations.js.map +1 -1
  25. package/dist/esm/pagination.d.ts +10 -2
  26. package/dist/esm/pagination.js +19 -4
  27. package/dist/esm/pagination.js.map +1 -1
  28. package/dist/esm/provider.d.ts +16 -0
  29. package/dist/esm/provider.js +4 -0
  30. package/dist/esm/provider.js.map +1 -1
  31. package/dist/esm/sandbox.js +24 -0
  32. package/dist/esm/sandbox.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/__test__/client.test.ts +86 -58
  35. package/src/client.ts +13 -8
  36. package/src/dynamodb-model.ts +16 -14
  37. package/src/operations.ts +4 -0
  38. package/src/pagination.ts +42 -8
  39. package/src/provider.ts +5 -1
  40. package/src/sandbox.ts +24 -0
@@ -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
  })
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@model-ts/dynamodb",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "author": "Fabian Finke <finkef@icloud.com>",
@@ -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,21 +1,23 @@
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((item) => item.values()),
870
- b: b.map((item) => item.values()),
871
- union: union.map((item) => item.values()),
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((item) => item instanceof C).length).toBe(123)
1706
- expect(results.filter((item) => item instanceof D).length).toBe(111)
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((item) => item instanceof C).length).toBe(123)
1782
- expect(results.filter((item) => item instanceof D).length).toBe(111)
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 = ((models[
464
- key
465
- ] as any) as DynamoDBInternals<M>).__dynamoDBDecode(item)
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
- rollbackSuccessful,
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
  }
@@ -15,17 +15,20 @@ export interface DynamoDBModelInstance extends ModelInstance<string, any> {
15
15
 
16
16
  PK: string
17
17
  SK: string
18
- GSI2PK?: string // | null
19
- GSI2SK?: string // | null
20
- GSI3PK?: string // | null
21
- GSI3SK?: string // | null
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 extends DynamoDBModelInstance
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 Decodable
42
- > = M extends DynamoDBModelConstructor<any>
43
- ? InstanceType<M>
44
- : M extends DynamoDBUnion
45
- ? InstanceType<M["_models"][number]>
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