@webiny/db-dynamodb 6.0.0-beta.0 → 6.0.0-rc.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 (189) hide show
  1. package/DynamoDbDriver.d.ts +14 -12
  2. package/DynamoDbDriver.js +214 -22
  3. package/DynamoDbDriver.js.map +1 -1
  4. package/README.md +6 -62
  5. package/index.d.ts +4 -3
  6. package/index.js +4 -36
  7. package/index.js.map +1 -1
  8. package/package.json +19 -26
  9. package/plugins/definitions/AttributePlugin.d.ts +1 -1
  10. package/plugins/definitions/AttributePlugin.js +4 -12
  11. package/plugins/definitions/AttributePlugin.js.map +1 -1
  12. package/plugins/definitions/DateTimeTransformPlugin.d.ts +2 -1
  13. package/plugins/definitions/DateTimeTransformPlugin.js +6 -14
  14. package/plugins/definitions/DateTimeTransformPlugin.js.map +1 -1
  15. package/plugins/definitions/FieldPathPlugin.js +6 -14
  16. package/plugins/definitions/FieldPathPlugin.js.map +1 -1
  17. package/plugins/definitions/FieldPlugin.d.ts +2 -2
  18. package/plugins/definitions/FieldPlugin.js +2 -9
  19. package/plugins/definitions/FieldPlugin.js.map +1 -1
  20. package/plugins/definitions/TimeTransformPlugin.d.ts +2 -1
  21. package/plugins/definitions/TimeTransformPlugin.js +12 -19
  22. package/plugins/definitions/TimeTransformPlugin.js.map +1 -1
  23. package/plugins/definitions/ValueFilterPlugin.d.ts +2 -2
  24. package/plugins/definitions/ValueFilterPlugin.js +5 -13
  25. package/plugins/definitions/ValueFilterPlugin.js.map +1 -1
  26. package/plugins/definitions/ValueTransformPlugin.js +6 -14
  27. package/plugins/definitions/ValueTransformPlugin.js.map +1 -1
  28. package/plugins/definitions/assignFields.js +4 -12
  29. package/plugins/definitions/assignFields.js.map +1 -1
  30. package/plugins/filters/andIn.d.ts +2 -2
  31. package/plugins/filters/andIn.js +5 -12
  32. package/plugins/filters/andIn.js.map +1 -1
  33. package/plugins/filters/between.d.ts +2 -2
  34. package/plugins/filters/between.js +5 -12
  35. package/plugins/filters/between.js.map +1 -1
  36. package/plugins/filters/contains.d.ts +2 -2
  37. package/plugins/filters/contains.js +24 -11
  38. package/plugins/filters/contains.js.map +1 -1
  39. package/plugins/filters/eq.d.ts +2 -2
  40. package/plugins/filters/eq.js +5 -11
  41. package/plugins/filters/eq.js.map +1 -1
  42. package/plugins/filters/fuzzy.d.ts +2 -2
  43. package/plugins/filters/fuzzy.js +5 -12
  44. package/plugins/filters/fuzzy.js.map +1 -1
  45. package/plugins/filters/gt.d.ts +2 -2
  46. package/plugins/filters/gt.js +3 -9
  47. package/plugins/filters/gt.js.map +1 -1
  48. package/plugins/filters/gte.d.ts +2 -2
  49. package/plugins/filters/gte.js +3 -9
  50. package/plugins/filters/gte.js.map +1 -1
  51. package/plugins/filters/in.d.ts +2 -2
  52. package/plugins/filters/in.js +5 -12
  53. package/plugins/filters/in.js.map +1 -1
  54. package/plugins/filters/index.d.ts +1 -1
  55. package/plugins/filters/index.js +12 -20
  56. package/plugins/filters/index.js.map +1 -1
  57. package/plugins/filters/lt.d.ts +2 -2
  58. package/plugins/filters/lt.js +3 -9
  59. package/plugins/filters/lt.js.map +1 -1
  60. package/plugins/filters/lte.d.ts +2 -2
  61. package/plugins/filters/lte.js +3 -9
  62. package/plugins/filters/lte.js.map +1 -1
  63. package/plugins/filters/startsWith.d.ts +2 -2
  64. package/plugins/filters/startsWith.js +3 -9
  65. package/plugins/filters/startsWith.js.map +1 -1
  66. package/plugins/index.d.ts +9 -1
  67. package/plugins/index.js +11 -11
  68. package/plugins/index.js.map +1 -1
  69. package/store/entity.d.ts +6 -0
  70. package/store/entity.js +11 -0
  71. package/store/entity.js.map +1 -0
  72. package/store/keys.d.ts +6 -0
  73. package/store/keys.js +16 -0
  74. package/store/keys.js.map +1 -0
  75. package/store/types.d.ts +6 -0
  76. package/store/types.js +3 -0
  77. package/store/types.js.map +1 -0
  78. package/toolbox.d.ts +7 -2
  79. package/toolbox.js +2 -17
  80. package/toolbox.js.map +1 -1
  81. package/types.d.ts +3 -24
  82. package/types.js +1 -5
  83. package/types.js.map +1 -1
  84. package/utils/attributes.d.ts +3 -3
  85. package/utils/attributes.js +4 -12
  86. package/utils/attributes.js.map +1 -1
  87. package/utils/{batchRead.d.ts → batch/batchRead.d.ts} +3 -2
  88. package/utils/{batchRead.js → batch/batchRead.js} +5 -13
  89. package/utils/batch/batchRead.js.map +1 -0
  90. package/utils/batch/batchWrite.d.ts +13 -0
  91. package/utils/{batchWrite.js → batch/batchWrite.js} +3 -11
  92. package/utils/batch/batchWrite.js.map +1 -0
  93. package/utils/batch/index.d.ts +3 -0
  94. package/utils/batch/index.js +5 -0
  95. package/utils/batch/index.js.map +1 -0
  96. package/utils/batch/types.d.ts +30 -0
  97. package/utils/batch/types.js +3 -0
  98. package/utils/batch/types.js.map +1 -0
  99. package/utils/cleanup.d.ts +3 -3
  100. package/utils/cleanup.js +3 -10
  101. package/utils/cleanup.js.map +1 -1
  102. package/utils/count.d.ts +1 -1
  103. package/utils/count.js +1 -8
  104. package/utils/count.js.map +1 -1
  105. package/utils/createEntity.d.ts +36 -53
  106. package/utils/createEntity.js +75 -51
  107. package/utils/createEntity.js.map +1 -1
  108. package/utils/createTable.d.ts +10 -6
  109. package/utils/createTable.js +25 -15
  110. package/utils/createTable.js.map +1 -1
  111. package/utils/cursor.js +2 -10
  112. package/utils/cursor.js.map +1 -1
  113. package/utils/delete.d.ts +8 -8
  114. package/utils/delete.js +1 -8
  115. package/utils/delete.js.map +1 -1
  116. package/utils/entity/Entity.d.ts +28 -0
  117. package/utils/entity/Entity.js +99 -0
  118. package/utils/entity/Entity.js.map +1 -0
  119. package/utils/entity/EntityReadBatch.d.ts +18 -0
  120. package/utils/entity/EntityReadBatch.js +39 -0
  121. package/utils/entity/EntityReadBatch.js.map +1 -0
  122. package/utils/entity/EntityReadBatchBuilder.d.ts +10 -0
  123. package/utils/entity/EntityReadBatchBuilder.js +21 -0
  124. package/utils/entity/EntityReadBatchBuilder.js.map +1 -0
  125. package/utils/entity/EntityWriteBatch.d.ts +23 -0
  126. package/utils/entity/EntityWriteBatch.js +51 -0
  127. package/utils/entity/EntityWriteBatch.js.map +1 -0
  128. package/utils/entity/EntityWriteBatchBuilder.d.ts +11 -0
  129. package/utils/entity/EntityWriteBatchBuilder.js +20 -0
  130. package/utils/entity/EntityWriteBatchBuilder.js.map +1 -0
  131. package/utils/entity/getEntity.d.ts +4 -0
  132. package/utils/entity/getEntity.js +12 -0
  133. package/utils/entity/getEntity.js.map +1 -0
  134. package/utils/entity/index.d.ts +7 -0
  135. package/utils/entity/index.js +9 -0
  136. package/utils/entity/index.js.map +1 -0
  137. package/utils/entity/types.d.ts +75 -0
  138. package/utils/entity/types.js +4 -0
  139. package/utils/entity/types.js.map +1 -0
  140. package/utils/filter.d.ts +2 -2
  141. package/utils/filter.js +7 -14
  142. package/utils/filter.js.map +1 -1
  143. package/utils/get.d.ts +6 -5
  144. package/utils/get.js +4 -12
  145. package/utils/get.js.map +1 -1
  146. package/utils/index.d.ts +17 -17
  147. package/utils/index.js +17 -192
  148. package/utils/index.js.map +1 -1
  149. package/utils/listResponse.js +4 -10
  150. package/utils/listResponse.js.map +1 -1
  151. package/utils/put.d.ts +10 -9
  152. package/utils/put.js +3 -9
  153. package/utils/put.js.map +1 -1
  154. package/utils/query.d.ts +11 -12
  155. package/utils/query.js +30 -22
  156. package/utils/query.js.map +1 -1
  157. package/utils/scan.d.ts +11 -7
  158. package/utils/scan.js +22 -12
  159. package/utils/scan.js.map +1 -1
  160. package/utils/sort.d.ts +1 -1
  161. package/utils/sort.js +7 -14
  162. package/utils/sort.js.map +1 -1
  163. package/utils/table/Table.d.ts +10 -0
  164. package/utils/table/Table.js +27 -0
  165. package/utils/table/Table.js.map +1 -0
  166. package/utils/table/TableReadBatch.d.ts +19 -0
  167. package/utils/table/TableReadBatch.js +54 -0
  168. package/utils/table/TableReadBatch.js.map +1 -0
  169. package/utils/table/TableWriteBatch.d.ts +21 -0
  170. package/utils/table/TableWriteBatch.js +61 -0
  171. package/utils/table/TableWriteBatch.js.map +1 -0
  172. package/utils/table/index.d.ts +4 -0
  173. package/utils/table/index.js +6 -0
  174. package/utils/table/index.js.map +1 -0
  175. package/utils/table/types.d.ts +39 -0
  176. package/utils/table/types.js +3 -0
  177. package/utils/table/types.js.map +1 -0
  178. package/utils/update.d.ts +2 -1
  179. package/utils/update.js +3 -9
  180. package/utils/update.js.map +1 -1
  181. package/plugins/definitions/NumberTransformPlugin.d.ts +0 -4
  182. package/plugins/definitions/NumberTransformPlugin.js +0 -36
  183. package/plugins/definitions/NumberTransformPlugin.js.map +0 -1
  184. package/utils/batchRead.js.map +0 -1
  185. package/utils/batchWrite.d.ts +0 -29
  186. package/utils/batchWrite.js.map +0 -1
  187. package/utils/table.d.ts +0 -7
  188. package/utils/table.js +0 -24
  189. package/utils/table.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_toolbox","require","createStandardEntity","params","Entity","name","table","attributes","PK","partitionKey","SK","sortKey","GSI1_PK","type","GSI1_SK","TYPE","data","exports","createLegacyEntity"],"sources":["createEntity.ts"],"sourcesContent":["import { AttributeDefinitions, Entity, Table } from \"~/toolbox\";\n\ninterface CreateStandardEntityParams {\n table: Table<string, string, string>;\n name: string;\n}\n\nexport const createStandardEntity = (params: CreateStandardEntityParams): Entity<any> => {\n return new Entity({\n name: params.name,\n table: params.table,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\"\n },\n data: {\n type: \"map\"\n }\n }\n });\n};\n\ninterface CreateLegacyEntityParams {\n table: Table<string, string, string>;\n name: string;\n attributes?: AttributeDefinitions;\n}\n\nexport const createLegacyEntity = (params: CreateLegacyEntityParams) => {\n return new Entity({\n table: params.table,\n name: params.name,\n attributes: {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\"\n },\n ...(params.attributes || {})\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOO,MAAMC,oBAAoB,GAAIC,MAAkC,IAAkB;EACrF,OAAO,IAAIC,eAAM,CAAC;IACdC,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBC,KAAK,EAAEH,MAAM,CAACG,KAAK;IACnBC,UAAU,EAAE;MACRC,EAAE,EAAE;QACAC,YAAY,EAAE;MAClB,CAAC;MACDC,EAAE,EAAE;QACAC,OAAO,EAAE;MACb,CAAC;MACDC,OAAO,EAAE;QACLC,IAAI,EAAE;MACV,CAAC;MACDC,OAAO,EAAE;QACLD,IAAI,EAAE;MACV,CAAC;MACDE,IAAI,EAAE;QACFF,IAAI,EAAE;MACV,CAAC;MACDG,IAAI,EAAE;QACFH,IAAI,EAAE;MACV;IACJ;EACJ,CAAC,CAAC;AACN,CAAC;AAACI,OAAA,CAAAf,oBAAA,GAAAA,oBAAA;AAQK,MAAMgB,kBAAkB,GAAIf,MAAgC,IAAK;EACpE,OAAO,IAAIC,eAAM,CAAC;IACdE,KAAK,EAAEH,MAAM,CAACG,KAAK;IACnBD,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBE,UAAU,EAAE;MACRC,EAAE,EAAE;QACAC,YAAY,EAAE;MAClB,CAAC;MACDC,EAAE,EAAE;QACAC,OAAO,EAAE;MACb,CAAC;MACDC,OAAO,EAAE;QACLC,IAAI,EAAE;MACV,CAAC;MACDC,OAAO,EAAE;QACLD,IAAI,EAAE;MACV,CAAC;MACDE,IAAI,EAAE;QACFF,IAAI,EAAE;MACV,CAAC;MACD,IAAIV,MAAM,CAACI,UAAU,IAAI,CAAC,CAAC;IAC/B;EACJ,CAAC,CAAC;AACN,CAAC;AAACU,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createEntity","globalEntityAttributes","PK","partitionKey","SK","sortKey","GSI1_PK","type","GSI1_SK","GSI2_PK","GSI2_SK","TYPE","required","data","expiresAt","createGlobalEntity","params","attributes","standardEntityAttributes","GSI_TENANT","createStandardEntity"],"sources":["createEntity.ts"],"sourcesContent":["import type { AttributeDefinitions } from \"~/toolbox.js\";\nimport { createEntity, type EntityConstructor } from \"~/utils/entity/index.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport type IGlobalEntityAttributes<T = undefined> = {\n PK: string;\n SK: string;\n TYPE: string;\n GSI1_PK?: string;\n GSI1_SK?: string;\n GSI2_PK?: string;\n GSI2_SK?: string;\n expiresAt?: string | null;\n} & (T extends undefined ? { data?: undefined } : { data: T });\n\nexport const globalEntityAttributes: AttributeDefinitions = {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n GSI2_PK: {\n type: \"string\"\n },\n GSI2_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\",\n required: true\n },\n data: {\n type: \"map\"\n },\n expiresAt: {\n type: \"number\"\n }\n};\n\nexport const createGlobalEntity = <T extends GenericRecord = GenericRecord>(\n params: Omit<EntityConstructor, \"attributes\"> & Partial<Pick<EntityConstructor, \"attributes\">>\n) => {\n return createEntity<IGlobalEntityAttributes<T>>({\n ...params,\n attributes: {\n ...globalEntityAttributes,\n ...params.attributes\n }\n });\n};\n\nexport type IStandardEntityAttributes<T = undefined> = {\n PK: string;\n SK: string;\n GSI_TENANT: string;\n TYPE: string;\n GSI1_PK?: string;\n GSI1_SK?: string;\n GSI2_PK?: string;\n GSI2_SK?: string;\n expiresAt?: number | null;\n} & (T extends undefined ? { data?: undefined } : { data: T });\n\nexport const standardEntityAttributes: AttributeDefinitions = {\n PK: {\n partitionKey: true\n },\n SK: {\n sortKey: true\n },\n GSI_TENANT: {\n type: \"string\",\n required: true\n },\n GSI1_PK: {\n type: \"string\"\n },\n GSI1_SK: {\n type: \"string\"\n },\n GSI2_PK: {\n type: \"string\"\n },\n GSI2_SK: {\n type: \"string\"\n },\n TYPE: {\n type: \"string\",\n required: true\n },\n data: {\n type: \"map\"\n },\n expiresAt: {\n type: \"number\"\n }\n};\n\nexport const createStandardEntity = <T extends GenericRecord = GenericRecord>(\n params: Omit<EntityConstructor, \"attributes\"> & Partial<Pick<EntityConstructor, \"attributes\">>\n) => {\n return createEntity<IStandardEntityAttributes<T>>({\n ...params,\n attributes: {\n ...standardEntityAttributes,\n ...params.attributes\n }\n });\n};\n"],"mappings":"AACA,SAASA,YAAY;AAcrB,OAAO,MAAMC,sBAA4C,GAAG;EACxDC,EAAE,EAAE;IACAC,YAAY,EAAE;EAClB,CAAC;EACDC,EAAE,EAAE;IACAC,OAAO,EAAE;EACb,CAAC;EACDC,OAAO,EAAE;IACLC,IAAI,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACLD,IAAI,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACLF,IAAI,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACLH,IAAI,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACFJ,IAAI,EAAE,QAAQ;IACdK,QAAQ,EAAE;EACd,CAAC;EACDC,IAAI,EAAE;IACFN,IAAI,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACPP,IAAI,EAAE;EACV;AACJ,CAAC;AAED,OAAO,MAAMQ,kBAAkB,GAC3BC,MAA8F,IAC7F;EACD,OAAOhB,YAAY,CAA6B;IAC5C,GAAGgB,MAAM;IACTC,UAAU,EAAE;MACR,GAAGhB,sBAAsB;MACzB,GAAGe,MAAM,CAACC;IACd;EACJ,CAAC,CAAC;AACN,CAAC;AAcD,OAAO,MAAMC,wBAA8C,GAAG;EAC1DhB,EAAE,EAAE;IACAC,YAAY,EAAE;EAClB,CAAC;EACDC,EAAE,EAAE;IACAC,OAAO,EAAE;EACb,CAAC;EACDc,UAAU,EAAE;IACRZ,IAAI,EAAE,QAAQ;IACdK,QAAQ,EAAE;EACd,CAAC;EACDN,OAAO,EAAE;IACLC,IAAI,EAAE;EACV,CAAC;EACDC,OAAO,EAAE;IACLD,IAAI,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACLF,IAAI,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACLH,IAAI,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACFJ,IAAI,EAAE,QAAQ;IACdK,QAAQ,EAAE;EACd,CAAC;EACDC,IAAI,EAAE;IACFN,IAAI,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACPP,IAAI,EAAE;EACV;AACJ,CAAC;AAED,OAAO,MAAMa,oBAAoB,GAC7BJ,MAA8F,IAC7F;EACD,OAAOhB,YAAY,CAA+B;IAC9C,GAAGgB,MAAM;IACTC,UAAU,EAAE;MACR,GAAGC,wBAAwB;MAC3B,GAAGF,MAAM,CAACC;IACd;EACJ,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,7 +1,11 @@
1
- import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
2
- import { Table } from "../toolbox";
3
- export interface CreateTableParams {
4
- name?: string;
5
- documentClient: DynamoDBDocument;
1
+ import type { ITable } from "../utils/table/index.js";
2
+ import type { TableConstructor } from "../toolbox.js";
3
+ export interface ICreateTableParamsIndexDefinition {
4
+ partitionKey: string;
5
+ sortKey?: string;
6
6
  }
7
- export declare const createTable: ({ name, documentClient }: CreateTableParams) => Table<string, "PK", "SK">;
7
+ export type ICreateTableParams = Partial<Omit<TableConstructor<string, string, string>, "DocumentClient">> & {
8
+ name: string;
9
+ documentClient: Pick<TableConstructor<string, string, string>, "DocumentClient">["DocumentClient"];
10
+ };
11
+ export declare const createTable: (params: ICreateTableParams) => ITable<string, "PK", "SK">;
@@ -1,29 +1,39 @@
1
- "use strict";
1
+ import { Table } from "./table/index.js";
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createTable = void 0;
7
- var _toolbox = require("../toolbox");
8
- const createTable = ({
9
- name,
10
- documentClient
11
- }) => {
12
- return new _toolbox.Table({
13
- name: name || String(process.env.DB_TABLE),
3
+ // export interface ICreateTableParams {
4
+ // name?: string;
5
+ // documentClient: DynamoDBDocument;
6
+ // indexes?: GenericRecord<string, ICreateTableParamsIndexDefinition>;
7
+ // }
8
+
9
+ export const createTable = params => {
10
+ const {
11
+ documentClient,
12
+ indexes = {},
13
+ ...rest
14
+ } = params;
15
+ return new Table({
14
16
  partitionKey: "PK",
15
17
  sortKey: "SK",
16
18
  DocumentClient: documentClient,
17
19
  indexes: {
20
+ GSI_TENANT: {
21
+ partitionKey: "GSI_TENANT"
22
+ },
18
23
  GSI1: {
19
24
  partitionKey: "GSI1_PK",
20
25
  sortKey: "GSI1_SK"
21
- }
26
+ },
27
+ GSI2: {
28
+ partitionKey: "GSI2_PK",
29
+ sortKey: "GSI2_SK"
30
+ },
31
+ ...indexes
22
32
  },
23
33
  autoExecute: true,
24
- autoParse: true
34
+ autoParse: true,
35
+ ...rest
25
36
  });
26
37
  };
27
- exports.createTable = createTable;
28
38
 
29
39
  //# sourceMappingURL=createTable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_toolbox","require","createTable","name","documentClient","Table","String","process","env","DB_TABLE","partitionKey","sortKey","DocumentClient","indexes","GSI1","autoExecute","autoParse","exports"],"sources":["createTable.ts"],"sourcesContent":["import { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { Table } from \"~/toolbox\";\n\nexport interface CreateTableParams {\n name?: string;\n documentClient: DynamoDBDocument;\n}\n\nexport const createTable = ({ name, documentClient }: CreateTableParams) => {\n return new Table({\n name: name || String(process.env.DB_TABLE),\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n }\n },\n autoExecute: true,\n autoParse: true\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAOO,MAAMC,WAAW,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAkC,CAAC,KAAK;EACxE,OAAO,IAAIC,cAAK,CAAC;IACbF,IAAI,EAAEA,IAAI,IAAIG,MAAM,CAACC,OAAO,CAACC,GAAG,CAACC,QAAQ,CAAC;IAC1CC,YAAY,EAAE,IAAI;IAClBC,OAAO,EAAE,IAAI;IACbC,cAAc,EAAER,cAAc;IAC9BS,OAAO,EAAE;MACLC,IAAI,EAAE;QACFJ,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb;IACJ,CAAC;IACDI,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE;EACf,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAf,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["Table","createTable","params","documentClient","indexes","rest","partitionKey","sortKey","DocumentClient","GSI_TENANT","GSI1","GSI2","autoExecute","autoParse"],"sources":["createTable.ts"],"sourcesContent":["import type { ITable } from \"~/utils/table/index.js\";\nimport { Table } from \"~/utils/table/index.js\";\nimport type { TableConstructor } from \"~/toolbox.js\";\n\nexport interface ICreateTableParamsIndexDefinition {\n partitionKey: string;\n sortKey?: string;\n}\n\n// export interface ICreateTableParams {\n// name?: string;\n// documentClient: DynamoDBDocument;\n// indexes?: GenericRecord<string, ICreateTableParamsIndexDefinition>;\n// }\n\nexport type ICreateTableParams = Partial<\n Omit<TableConstructor<string, string, string>, \"DocumentClient\">\n> & {\n name: string;\n documentClient: Pick<\n TableConstructor<string, string, string>,\n \"DocumentClient\"\n >[\"DocumentClient\"];\n};\n\nexport const createTable = (params: ICreateTableParams): ITable<string, \"PK\", \"SK\"> => {\n const { documentClient, indexes = {}, ...rest } = params;\n return new Table({\n partitionKey: \"PK\",\n sortKey: \"SK\",\n DocumentClient: documentClient,\n indexes: {\n GSI_TENANT: {\n partitionKey: \"GSI_TENANT\"\n },\n GSI1: {\n partitionKey: \"GSI1_PK\",\n sortKey: \"GSI1_SK\"\n },\n GSI2: {\n partitionKey: \"GSI2_PK\",\n sortKey: \"GSI2_SK\"\n },\n ...indexes\n },\n autoExecute: true,\n autoParse: true,\n ...rest\n });\n};\n"],"mappings":"AACA,SAASA,KAAK;;AAQd;AACA;AACA;AACA;AACA;;AAYA,OAAO,MAAMC,WAAW,GAAIC,MAA0B,IAAiC;EACnF,MAAM;IAAEC,cAAc;IAAEC,OAAO,GAAG,CAAC,CAAC;IAAE,GAAGC;EAAK,CAAC,GAAGH,MAAM;EACxD,OAAO,IAAIF,KAAK,CAAC;IACbM,YAAY,EAAE,IAAI;IAClBC,OAAO,EAAE,IAAI;IACbC,cAAc,EAAEL,cAAc;IAC9BC,OAAO,EAAE;MACLK,UAAU,EAAE;QACRH,YAAY,EAAE;MAClB,CAAC;MACDI,IAAI,EAAE;QACFJ,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb,CAAC;MACDI,IAAI,EAAE;QACFL,YAAY,EAAE,SAAS;QACvBC,OAAO,EAAE;MACb,CAAC;MACD,GAAGH;IACP,CAAC;IACDQ,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE,IAAI;IACf,GAAGR;EACP,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
package/utils/cursor.js CHANGED
@@ -1,22 +1,14 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.encodeCursor = exports.decodeCursor = void 0;
7
- const encodeCursor = cursor => {
1
+ export const encodeCursor = cursor => {
8
2
  if (!cursor) {
9
3
  return null;
10
4
  }
11
5
  return Buffer.from(JSON.stringify(cursor)).toString("base64");
12
6
  };
13
- exports.encodeCursor = encodeCursor;
14
- const decodeCursor = cursor => {
7
+ export const decodeCursor = cursor => {
15
8
  if (!cursor) {
16
9
  return null;
17
10
  }
18
11
  return JSON.parse(Buffer.from(cursor, "base64").toString("ascii"));
19
12
  };
20
- exports.decodeCursor = decodeCursor;
21
13
 
22
14
  //# sourceMappingURL=cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["encodeCursor","cursor","Buffer","from","JSON","stringify","toString","exports","decodeCursor","parse"],"sources":["cursor.ts"],"sourcesContent":["export const encodeCursor = (cursor?: any): string | null => {\n if (!cursor) {\n return null;\n }\n\n return Buffer.from(JSON.stringify(cursor)).toString(\"base64\");\n};\n\nexport const decodeCursor = (cursor?: string | null): string | null => {\n if (!cursor) {\n return null;\n }\n\n return JSON.parse(Buffer.from(cursor, \"base64\").toString(\"ascii\"));\n};\n"],"mappings":";;;;;;AAAO,MAAMA,YAAY,GAAIC,MAAY,IAAoB;EACzD,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAOC,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACJ,MAAM,CAAC,CAAC,CAACK,QAAQ,CAAC,QAAQ,CAAC;AACjE,CAAC;AAACC,OAAA,CAAAP,YAAA,GAAAA,YAAA;AAEK,MAAMQ,YAAY,GAAIP,MAAsB,IAAoB;EACnE,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAOG,IAAI,CAACK,KAAK,CAACP,MAAM,CAACC,IAAI,CAACF,MAAM,EAAE,QAAQ,CAAC,CAACK,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC;AAACC,OAAA,CAAAC,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["encodeCursor","cursor","Buffer","from","JSON","stringify","toString","decodeCursor","parse"],"sources":["cursor.ts"],"sourcesContent":["export const encodeCursor = (cursor?: any): string | null => {\n if (!cursor) {\n return null;\n }\n\n return Buffer.from(JSON.stringify(cursor)).toString(\"base64\");\n};\n\nexport const decodeCursor = (cursor?: string | null): string | null => {\n if (!cursor) {\n return null;\n }\n\n return JSON.parse(Buffer.from(cursor, \"base64\").toString(\"ascii\"));\n};\n"],"mappings":"AAAA,OAAO,MAAMA,YAAY,GAAIC,MAAY,IAAoB;EACzD,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAOC,MAAM,CAACC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACJ,MAAM,CAAC,CAAC,CAACK,QAAQ,CAAC,QAAQ,CAAC;AACjE,CAAC;AAED,OAAO,MAAMC,YAAY,GAAIN,MAAsB,IAAoB;EACnE,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EAEA,OAAOG,IAAI,CAACI,KAAK,CAACN,MAAM,CAACC,IAAI,CAACF,MAAM,EAAE,QAAQ,CAAC,CAACK,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC","ignoreList":[]}
package/utils/delete.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { Entity } from "../toolbox";
2
- interface Params {
1
+ import type { Entity } from "../toolbox.js";
2
+ export interface IDeleteItemKeys {
3
+ PK: string;
4
+ SK: string;
5
+ }
6
+ export interface IDeleteItemParams {
3
7
  entity: Entity;
4
- keys: {
5
- PK: string;
6
- SK: string;
7
- };
8
+ keys: IDeleteItemKeys;
8
9
  }
9
- export declare const deleteItem: (params: Params) => Promise<import("@aws-sdk/lib-dynamodb").DeleteCommandOutput>;
10
- export {};
10
+ export declare const deleteItem: (params: IDeleteItemParams) => Promise<import("@aws-sdk/lib-dynamodb").DeleteCommandOutput>;
package/utils/delete.js CHANGED
@@ -1,10 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.deleteItem = void 0;
7
- const deleteItem = async params => {
1
+ export const deleteItem = async params => {
8
2
  const {
9
3
  entity,
10
4
  keys
@@ -13,6 +7,5 @@ const deleteItem = async params => {
13
7
  execute: true
14
8
  });
15
9
  };
16
- exports.deleteItem = deleteItem;
17
10
 
18
11
  //# sourceMappingURL=delete.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["deleteItem","params","entity","keys","delete","execute","exports"],"sources":["delete.ts"],"sourcesContent":["import { Entity } from \"~/toolbox\";\n\ninterface Params {\n entity: Entity;\n keys: {\n PK: string;\n SK: string;\n };\n}\n\nexport const deleteItem = async (params: Params) => {\n const { entity, keys } = params;\n\n return await entity.delete(keys, {\n execute: true\n });\n};\n"],"mappings":";;;;;;AAUO,MAAMA,UAAU,GAAG,MAAOC,MAAc,IAAK;EAChD,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGF,MAAM;EAE/B,OAAO,MAAMC,MAAM,CAACE,MAAM,CAACD,IAAI,EAAE;IAC7BE,OAAO,EAAE;EACb,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAN,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["deleteItem","params","entity","keys","delete","execute"],"sources":["delete.ts"],"sourcesContent":["import type { Entity } from \"~/toolbox.js\";\nexport interface IDeleteItemKeys {\n PK: string;\n SK: string;\n}\nexport interface IDeleteItemParams {\n entity: Entity;\n keys: IDeleteItemKeys;\n}\n\nexport const deleteItem = async (params: IDeleteItemParams) => {\n const { entity, keys } = params;\n\n return await entity.delete(keys, {\n execute: true\n });\n};\n"],"mappings":"AAUA,OAAO,MAAMA,UAAU,GAAG,MAAOC,MAAyB,IAAK;EAC3D,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGF,MAAM;EAE/B,OAAO,MAAMC,MAAM,CAACE,MAAM,CAACD,IAAI,EAAE;IAC7BE,OAAO,EAAE;EACb,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import type { AttributeDefinitions, EntityConstructor as BaseEntityConstructor, Readonly, TableDef } from "../../toolbox.js";
2
+ import { Entity as BaseEntity } from "../../toolbox.js";
3
+ import type { ITableWriteBatch } from "../table/types.js";
4
+ import type { IEntity, IEntityCreateEntityReaderParams, IEntityCreateEntityWriterParams, IEntityDeleteResult, IEntityGetCleanResult, IEntityGetResult, IEntityPutResult, IEntityQueryAllCleanResult, IEntityQueryAllParams, IEntityQueryAllResult, IEntityQueryOneCleanResult, IEntityQueryOneParams, IEntityQueryOneResult, IEntityQueryPerPageParams, IEntityReadBatch, IEntityWriteBatch } from "./types.js";
5
+ import type { IPutParamsItem } from "../put.js";
6
+ import type { GetRecordParamsKeys } from "../get.js";
7
+ import type { IDeleteItemKeys } from "../delete.js";
8
+ import type { GenericRecord } from "@webiny/api/types.js";
9
+ export type EntityConstructor<T extends Readonly<AttributeDefinitions> = Readonly<AttributeDefinitions>> = BaseEntityConstructor<TableDef, string, true, true, true, "created", "modified", "entity", false, T>;
10
+ export declare class Entity<T extends GenericRecord = GenericRecord> implements IEntity<T> {
11
+ readonly entity: BaseEntity;
12
+ get name(): string;
13
+ get table(): TableDef;
14
+ constructor(params: EntityConstructor);
15
+ createEntityReader(params?: IEntityCreateEntityReaderParams): IEntityReadBatch<T>;
16
+ createEntityWriter(params?: IEntityCreateEntityWriterParams): IEntityWriteBatch<T>;
17
+ createTableWriter(): ITableWriteBatch;
18
+ put<T extends GenericRecord = GenericRecord>(item: IPutParamsItem<T>): IEntityPutResult;
19
+ get<T>(keys: GetRecordParamsKeys): IEntityGetResult<T>;
20
+ getClean<T>(keys: GetRecordParamsKeys): IEntityGetCleanResult<T>;
21
+ delete(keys: IDeleteItemKeys): IEntityDeleteResult;
22
+ queryOne<T>(params: IEntityQueryOneParams): IEntityQueryOneResult<T>;
23
+ queryOneClean<T>(params: IEntityQueryOneParams): IEntityQueryOneCleanResult<T>;
24
+ queryAll<T>(params: IEntityQueryAllParams): IEntityQueryAllResult<T>;
25
+ queryAllClean<T>(params: IEntityQueryAllParams): IEntityQueryAllCleanResult<T>;
26
+ queryPerPage<T>(params: IEntityQueryPerPageParams): Promise<import("../query.js").IQueryPageResponse<T>>;
27
+ }
28
+ export declare const createEntity: <T extends GenericRecord = GenericRecord>(params: EntityConstructor) => IEntity<T>;
@@ -0,0 +1,99 @@
1
+ import { Entity as BaseEntity } from "../../toolbox.js";
2
+ import { put } from "../put.js";
3
+ import { get, getClean } from "../get.js";
4
+ import { deleteItem } from "../delete.js";
5
+ import { createEntityReadBatch } from "./EntityReadBatch.js";
6
+ import { createEntityWriteBatch } from "./EntityWriteBatch.js";
7
+ import { createTableWriteBatch } from "../table/TableWriteBatch.js";
8
+ import { queryAll, queryAllClean, queryOne, queryOneClean, queryPerPage } from "../query.js";
9
+ export class Entity {
10
+ get name() {
11
+ return this.entity.name;
12
+ }
13
+ get table() {
14
+ /**
15
+ * Not possible to be undefined.
16
+ */
17
+ return this.entity.table;
18
+ }
19
+ constructor(params) {
20
+ this.entity = new BaseEntity(params);
21
+ }
22
+ createEntityReader(params) {
23
+ return createEntityReadBatch({
24
+ entity: this.entity,
25
+ read: params?.read
26
+ });
27
+ }
28
+ createEntityWriter(params) {
29
+ return createEntityWriteBatch({
30
+ entity: this.entity,
31
+ put: params?.put,
32
+ delete: params?.delete
33
+ });
34
+ }
35
+ createTableWriter() {
36
+ return createTableWriteBatch({
37
+ table: this.entity.table
38
+ });
39
+ }
40
+ async put(item) {
41
+ return put({
42
+ entity: this.entity,
43
+ item
44
+ });
45
+ }
46
+ async get(keys) {
47
+ return get({
48
+ entity: this.entity,
49
+ keys
50
+ });
51
+ }
52
+ async getClean(keys) {
53
+ return getClean({
54
+ entity: this.entity,
55
+ keys
56
+ });
57
+ }
58
+ async delete(keys) {
59
+ return deleteItem({
60
+ entity: this.entity,
61
+ keys
62
+ });
63
+ }
64
+ async queryOne(params) {
65
+ return queryOne({
66
+ ...params,
67
+ entity: this.entity
68
+ });
69
+ }
70
+ async queryOneClean(params) {
71
+ return queryOneClean({
72
+ ...params,
73
+ entity: this.entity
74
+ });
75
+ }
76
+ async queryAll(params) {
77
+ return queryAll({
78
+ ...params,
79
+ entity: this.entity
80
+ });
81
+ }
82
+ async queryAllClean(params) {
83
+ return queryAllClean({
84
+ ...params,
85
+ entity: this.entity
86
+ });
87
+ }
88
+ async queryPerPage(params) {
89
+ return queryPerPage({
90
+ ...params,
91
+ entity: this.entity
92
+ });
93
+ }
94
+ }
95
+ export const createEntity = params => {
96
+ return new Entity(params);
97
+ };
98
+
99
+ //# sourceMappingURL=Entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Entity","BaseEntity","put","get","getClean","deleteItem","createEntityReadBatch","createEntityWriteBatch","createTableWriteBatch","queryAll","queryAllClean","queryOne","queryOneClean","queryPerPage","name","entity","table","constructor","params","createEntityReader","read","createEntityWriter","delete","createTableWriter","item","keys","createEntity"],"sources":["Entity.ts"],"sourcesContent":["import type {\n AttributeDefinitions,\n EntityConstructor as BaseEntityConstructor,\n Readonly,\n TableDef\n} from \"~/toolbox.js\";\nimport { Entity as BaseEntity } from \"~/toolbox.js\";\nimport type { ITableWriteBatch } from \"../table/types.js\";\nimport type {\n IEntity,\n IEntityCreateEntityReaderParams,\n IEntityCreateEntityWriterParams,\n IEntityDeleteResult,\n IEntityGetCleanResult,\n IEntityGetResult,\n IEntityPutResult,\n IEntityQueryAllCleanResult,\n IEntityQueryAllParams,\n IEntityQueryAllResult,\n IEntityQueryOneCleanResult,\n IEntityQueryOneParams,\n IEntityQueryOneResult,\n IEntityQueryPerPageParams,\n IEntityReadBatch,\n IEntityWriteBatch\n} from \"./types.js\";\nimport type { IPutParamsItem } from \"../put.js\";\nimport { put } from \"../put.js\";\nimport type { GetRecordParamsKeys } from \"../get.js\";\nimport { get, getClean } from \"../get.js\";\nimport type { IDeleteItemKeys } from \"../delete.js\";\nimport { deleteItem } from \"../delete.js\";\nimport { createEntityReadBatch } from \"./EntityReadBatch.js\";\nimport { createEntityWriteBatch } from \"./EntityWriteBatch.js\";\nimport { createTableWriteBatch } from \"~/utils/table/TableWriteBatch.js\";\nimport { queryAll, queryAllClean, queryOne, queryOneClean, queryPerPage } from \"../query.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport type EntityConstructor<\n T extends Readonly<AttributeDefinitions> = Readonly<AttributeDefinitions>\n> = BaseEntityConstructor<\n TableDef,\n string,\n true,\n true,\n true,\n \"created\",\n \"modified\",\n \"entity\",\n false,\n T\n>;\n\nexport class Entity<T extends GenericRecord = GenericRecord> implements IEntity<T> {\n public readonly entity: BaseEntity;\n\n public get name(): string {\n return this.entity.name;\n }\n\n public get table(): TableDef {\n /**\n * Not possible to be undefined.\n */\n return this.entity.table!;\n }\n\n public constructor(params: EntityConstructor) {\n this.entity = new BaseEntity(params);\n }\n\n public createEntityReader(params?: IEntityCreateEntityReaderParams): IEntityReadBatch<T> {\n return createEntityReadBatch({\n entity: this.entity,\n read: params?.read\n });\n }\n\n public createEntityWriter(params?: IEntityCreateEntityWriterParams): IEntityWriteBatch<T> {\n return createEntityWriteBatch({\n entity: this.entity,\n put: params?.put,\n delete: params?.delete\n });\n }\n\n public createTableWriter(): ITableWriteBatch {\n return createTableWriteBatch({\n table: this.entity.table as TableDef\n });\n }\n\n public async put<T extends GenericRecord = GenericRecord>(\n item: IPutParamsItem<T>\n ): IEntityPutResult {\n return put({\n entity: this.entity,\n item\n });\n }\n\n public async get<T>(keys: GetRecordParamsKeys): IEntityGetResult<T> {\n return get<T>({\n entity: this.entity,\n keys\n });\n }\n\n public async getClean<T>(keys: GetRecordParamsKeys): IEntityGetCleanResult<T> {\n return getClean<T>({\n entity: this.entity,\n keys\n });\n }\n\n public async delete(keys: IDeleteItemKeys): IEntityDeleteResult {\n return deleteItem({\n entity: this.entity,\n keys\n });\n }\n\n public async queryOne<T>(params: IEntityQueryOneParams): IEntityQueryOneResult<T> {\n return queryOne<T>({\n ...params,\n entity: this.entity\n });\n }\n\n public async queryOneClean<T>(params: IEntityQueryOneParams): IEntityQueryOneCleanResult<T> {\n return queryOneClean<T>({\n ...params,\n entity: this.entity\n });\n }\n\n public async queryAll<T>(params: IEntityQueryAllParams): IEntityQueryAllResult<T> {\n return queryAll<T>({\n ...params,\n entity: this.entity\n });\n }\n\n public async queryAllClean<T>(params: IEntityQueryAllParams): IEntityQueryAllCleanResult<T> {\n return queryAllClean<T>({\n ...params,\n entity: this.entity\n });\n }\n\n public async queryPerPage<T>(params: IEntityQueryPerPageParams) {\n return queryPerPage<T>({\n ...params,\n entity: this.entity\n });\n }\n}\n\nexport const createEntity = <T extends GenericRecord = GenericRecord>(\n params: EntityConstructor\n): IEntity<T> => {\n return new Entity<T>(params);\n};\n"],"mappings":"AAMA,SAASA,MAAM,IAAIC,UAAU;AAqB7B,SAASC,GAAG;AAEZ,SAASC,GAAG,EAAEC,QAAQ;AAEtB,SAASC,UAAU;AACnB,SAASC,qBAAqB;AAC9B,SAASC,sBAAsB;AAC/B,SAASC,qBAAqB;AAC9B,SAASC,QAAQ,EAAEC,aAAa,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,YAAY;AAkBvE,OAAO,MAAMb,MAAM,CAAgE;EAG/E,IAAWc,IAAIA,CAAA,EAAW;IACtB,OAAO,IAAI,CAACC,MAAM,CAACD,IAAI;EAC3B;EAEA,IAAWE,KAAKA,CAAA,EAAa;IACzB;AACR;AACA;IACQ,OAAO,IAAI,CAACD,MAAM,CAACC,KAAK;EAC5B;EAEOC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACH,MAAM,GAAG,IAAId,UAAU,CAACiB,MAAM,CAAC;EACxC;EAEOC,kBAAkBA,CAACD,MAAwC,EAAuB;IACrF,OAAOZ,qBAAqB,CAAC;MACzBS,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBK,IAAI,EAAEF,MAAM,EAAEE;IAClB,CAAC,CAAC;EACN;EAEOC,kBAAkBA,CAACH,MAAwC,EAAwB;IACtF,OAAOX,sBAAsB,CAAC;MAC1BQ,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBb,GAAG,EAAEgB,MAAM,EAAEhB,GAAG;MAChBoB,MAAM,EAAEJ,MAAM,EAAEI;IACpB,CAAC,CAAC;EACN;EAEOC,iBAAiBA,CAAA,EAAqB;IACzC,OAAOf,qBAAqB,CAAC;MACzBQ,KAAK,EAAE,IAAI,CAACD,MAAM,CAACC;IACvB,CAAC,CAAC;EACN;EAEA,MAAad,GAAGA,CACZsB,IAAuB,EACP;IAChB,OAAOtB,GAAG,CAAC;MACPa,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBS;IACJ,CAAC,CAAC;EACN;EAEA,MAAarB,GAAGA,CAAIsB,IAAyB,EAAuB;IAChE,OAAOtB,GAAG,CAAI;MACVY,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBU;IACJ,CAAC,CAAC;EACN;EAEA,MAAarB,QAAQA,CAAIqB,IAAyB,EAA4B;IAC1E,OAAOrB,QAAQ,CAAI;MACfW,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBU;IACJ,CAAC,CAAC;EACN;EAEA,MAAaH,MAAMA,CAACG,IAAqB,EAAuB;IAC5D,OAAOpB,UAAU,CAAC;MACdU,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBU;IACJ,CAAC,CAAC;EACN;EAEA,MAAad,QAAQA,CAAIO,MAA6B,EAA4B;IAC9E,OAAOP,QAAQ,CAAI;MACf,GAAGO,MAAM;MACTH,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACN;EAEA,MAAaH,aAAaA,CAAIM,MAA6B,EAAiC;IACxF,OAAON,aAAa,CAAI;MACpB,GAAGM,MAAM;MACTH,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACN;EAEA,MAAaN,QAAQA,CAAIS,MAA6B,EAA4B;IAC9E,OAAOT,QAAQ,CAAI;MACf,GAAGS,MAAM;MACTH,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACN;EAEA,MAAaL,aAAaA,CAAIQ,MAA6B,EAAiC;IACxF,OAAOR,aAAa,CAAI;MACpB,GAAGQ,MAAM;MACTH,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACN;EAEA,MAAaF,YAAYA,CAAIK,MAAiC,EAAE;IAC5D,OAAOL,YAAY,CAAI;MACnB,GAAGK,MAAM;MACTH,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMW,YAAY,GACrBR,MAAyB,IACZ;EACb,OAAO,IAAIlB,MAAM,CAAIkB,MAAM,CAAC;AAChC,CAAC","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import type { IReadBatchItem } from "../../utils/batch/types.js";
2
+ import type { IEntityReadBatch, IEntityReadBatchBuilderGetResponse, IEntityReadBatchKey } from "./types.js";
3
+ import type { EntityOption } from "./getEntity.js";
4
+ export interface IEntityReadBatchParams {
5
+ entity: EntityOption;
6
+ read?: IReadBatchItem[];
7
+ }
8
+ export declare class EntityReadBatch<T> implements IEntityReadBatch<T> {
9
+ private readonly entity;
10
+ private readonly builder;
11
+ private readonly _items;
12
+ get total(): number;
13
+ get items(): IEntityReadBatchBuilderGetResponse[];
14
+ constructor(params: IEntityReadBatchParams);
15
+ get(input: IEntityReadBatchKey | IEntityReadBatchKey[]): void;
16
+ execute(): Promise<T[]>;
17
+ }
18
+ export declare const createEntityReadBatch: <T>(params: IEntityReadBatchParams) => IEntityReadBatch<T>;
@@ -0,0 +1,39 @@
1
+ import { batchReadAll } from "../batch/batchRead.js";
2
+ import { createEntityReadBatchBuilder } from "./EntityReadBatchBuilder.js";
3
+ import { getEntity } from "./getEntity.js";
4
+ export class EntityReadBatch {
5
+ _items = [];
6
+ get total() {
7
+ return this._items.length;
8
+ }
9
+ get items() {
10
+ return Array.from(this._items);
11
+ }
12
+ constructor(params) {
13
+ this.entity = getEntity(params.entity);
14
+ this.builder = createEntityReadBatchBuilder(this.entity);
15
+ for (const item of params.read || []) {
16
+ this.get(item);
17
+ }
18
+ }
19
+ get(input) {
20
+ if (Array.isArray(input)) {
21
+ this._items.push(...input.map(item => {
22
+ return this.builder.get(item);
23
+ }));
24
+ return;
25
+ }
26
+ this._items.push(this.builder.get(input));
27
+ }
28
+ async execute() {
29
+ return await batchReadAll({
30
+ table: this.entity.table,
31
+ items: this._items
32
+ });
33
+ }
34
+ }
35
+ export const createEntityReadBatch = params => {
36
+ return new EntityReadBatch(params);
37
+ };
38
+
39
+ //# sourceMappingURL=EntityReadBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["batchReadAll","createEntityReadBatchBuilder","getEntity","EntityReadBatch","_items","total","length","items","Array","from","constructor","params","entity","builder","item","read","get","input","isArray","push","map","execute","table","createEntityReadBatch"],"sources":["EntityReadBatch.ts"],"sourcesContent":["import type { IReadBatchItem } from \"~/utils/batch/types.js\";\nimport type {\n IEntityReadBatch,\n IEntityReadBatchBuilder,\n IEntityReadBatchBuilderGetResponse,\n IEntityReadBatchKey\n} from \"./types.js\";\nimport type { Entity as ToolboxEntity, TableDef } from \"~/toolbox.js\";\nimport { batchReadAll } from \"~/utils/batch/batchRead.js\";\nimport { createEntityReadBatchBuilder } from \"./EntityReadBatchBuilder.js\";\nimport type { EntityOption } from \"./getEntity.js\";\nimport { getEntity } from \"./getEntity.js\";\n\nexport interface IEntityReadBatchParams {\n entity: EntityOption;\n read?: IReadBatchItem[];\n}\n\nexport class EntityReadBatch<T> implements IEntityReadBatch<T> {\n private readonly entity: ToolboxEntity;\n private readonly builder: IEntityReadBatchBuilder;\n private readonly _items: IEntityReadBatchBuilderGetResponse[] = [];\n\n public get total(): number {\n return this._items.length;\n }\n\n public get items(): IEntityReadBatchBuilderGetResponse[] {\n return Array.from(this._items);\n }\n\n public constructor(params: IEntityReadBatchParams) {\n this.entity = getEntity(params.entity);\n this.builder = createEntityReadBatchBuilder(this.entity);\n for (const item of params.read || []) {\n this.get(item);\n }\n }\n\n public get(input: IEntityReadBatchKey | IEntityReadBatchKey[]): void {\n if (Array.isArray(input)) {\n this._items.push(\n ...input.map(item => {\n return this.builder.get(item);\n })\n );\n return;\n }\n this._items.push(this.builder.get(input));\n }\n\n public async execute() {\n return await batchReadAll<T>({\n table: this.entity.table as TableDef,\n items: this._items\n });\n }\n}\n\nexport const createEntityReadBatch = <T>(params: IEntityReadBatchParams): IEntityReadBatch<T> => {\n return new EntityReadBatch<T>(params);\n};\n"],"mappings":"AAQA,SAASA,YAAY;AACrB,SAASC,4BAA4B;AAErC,SAASC,SAAS;AAOlB,OAAO,MAAMC,eAAe,CAAmC;EAG1CC,MAAM,GAAyC,EAAE;EAElE,IAAWC,KAAKA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACD,MAAM,CAACE,MAAM;EAC7B;EAEA,IAAWC,KAAKA,CAAA,EAAyC;IACrD,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACL,MAAM,CAAC;EAClC;EAEOM,WAAWA,CAACC,MAA8B,EAAE;IAC/C,IAAI,CAACC,MAAM,GAAGV,SAAS,CAACS,MAAM,CAACC,MAAM,CAAC;IACtC,IAAI,CAACC,OAAO,GAAGZ,4BAA4B,CAAC,IAAI,CAACW,MAAM,CAAC;IACxD,KAAK,MAAME,IAAI,IAAIH,MAAM,CAACI,IAAI,IAAI,EAAE,EAAE;MAClC,IAAI,CAACC,GAAG,CAACF,IAAI,CAAC;IAClB;EACJ;EAEOE,GAAGA,CAACC,KAAkD,EAAQ;IACjE,IAAIT,KAAK,CAACU,OAAO,CAACD,KAAK,CAAC,EAAE;MACtB,IAAI,CAACb,MAAM,CAACe,IAAI,CACZ,GAAGF,KAAK,CAACG,GAAG,CAACN,IAAI,IAAI;QACjB,OAAO,IAAI,CAACD,OAAO,CAACG,GAAG,CAACF,IAAI,CAAC;MACjC,CAAC,CACL,CAAC;MACD;IACJ;IACA,IAAI,CAACV,MAAM,CAACe,IAAI,CAAC,IAAI,CAACN,OAAO,CAACG,GAAG,CAACC,KAAK,CAAC,CAAC;EAC7C;EAEA,MAAaI,OAAOA,CAAA,EAAG;IACnB,OAAO,MAAMrB,YAAY,CAAI;MACzBsB,KAAK,EAAE,IAAI,CAACV,MAAM,CAACU,KAAiB;MACpCf,KAAK,EAAE,IAAI,CAACH;IAChB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMmB,qBAAqB,GAAOZ,MAA8B,IAA0B;EAC7F,OAAO,IAAIR,eAAe,CAAIQ,MAAM,CAAC;AACzC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { Entity as ToolboxEntity } from "../../toolbox.js";
2
+ import type { IEntityReadBatchBuilder, IEntityReadBatchBuilderGetResponse, IEntityReadBatchKey } from "./types.js";
3
+ import type { Entity } from "./Entity.js";
4
+ import type { EntityOption } from "./getEntity.js";
5
+ export declare class EntityReadBatchBuilder implements IEntityReadBatchBuilder {
6
+ private readonly entity;
7
+ constructor(entity: EntityOption);
8
+ get(item: IEntityReadBatchKey): IEntityReadBatchBuilderGetResponse;
9
+ }
10
+ export declare const createEntityReadBatchBuilder: (entity: ToolboxEntity | Entity) => IEntityReadBatchBuilder;
@@ -0,0 +1,21 @@
1
+ import { WebinyError } from "@webiny/error";
2
+ import { getEntity } from "./getEntity.js";
3
+ export class EntityReadBatchBuilder {
4
+ constructor(entity) {
5
+ this.entity = getEntity(entity);
6
+ }
7
+ get(item) {
8
+ const result = this.entity.getBatch(item);
9
+ if (!result.Table) {
10
+ throw new WebinyError(`No table provided for entity ${this.entity.name}.`);
11
+ } else if (!result.Key) {
12
+ throw new WebinyError(`No key provided for entity ${this.entity.name}.`);
13
+ }
14
+ return result;
15
+ }
16
+ }
17
+ export const createEntityReadBatchBuilder = entity => {
18
+ return new EntityReadBatchBuilder(entity);
19
+ };
20
+
21
+ //# sourceMappingURL=EntityReadBatchBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyError","getEntity","EntityReadBatchBuilder","constructor","entity","get","item","result","getBatch","Table","name","Key","createEntityReadBatchBuilder"],"sources":["EntityReadBatchBuilder.ts"],"sourcesContent":["import type { Entity as ToolboxEntity } from \"~/toolbox.js\";\nimport type {\n IEntityReadBatchBuilder,\n IEntityReadBatchBuilderGetResponse,\n IEntityReadBatchKey\n} from \"./types.js\";\nimport { WebinyError } from \"@webiny/error\";\nimport type { Entity } from \"./Entity.js\";\nimport type { EntityOption } from \"./getEntity.js\";\nimport { getEntity } from \"./getEntity.js\";\n\nexport class EntityReadBatchBuilder implements IEntityReadBatchBuilder {\n private readonly entity: ToolboxEntity;\n\n public constructor(entity: EntityOption) {\n this.entity = getEntity(entity);\n }\n\n public get(item: IEntityReadBatchKey): IEntityReadBatchBuilderGetResponse {\n const result = this.entity.getBatch(item);\n if (!result.Table) {\n throw new WebinyError(`No table provided for entity ${this.entity.name}.`);\n } else if (!result.Key) {\n throw new WebinyError(`No key provided for entity ${this.entity.name}.`);\n }\n return result as unknown as IEntityReadBatchBuilderGetResponse;\n }\n}\n\nexport const createEntityReadBatchBuilder = (\n entity: ToolboxEntity | Entity\n): IEntityReadBatchBuilder => {\n return new EntityReadBatchBuilder(entity);\n};\n"],"mappings":"AAMA,SAASA,WAAW,QAAQ,eAAe;AAG3C,SAASC,SAAS;AAElB,OAAO,MAAMC,sBAAsB,CAAoC;EAG5DC,WAAWA,CAACC,MAAoB,EAAE;IACrC,IAAI,CAACA,MAAM,GAAGH,SAAS,CAACG,MAAM,CAAC;EACnC;EAEOC,GAAGA,CAACC,IAAyB,EAAsC;IACtE,MAAMC,MAAM,GAAG,IAAI,CAACH,MAAM,CAACI,QAAQ,CAACF,IAAI,CAAC;IACzC,IAAI,CAACC,MAAM,CAACE,KAAK,EAAE;MACf,MAAM,IAAIT,WAAW,CAAC,gCAAgC,IAAI,CAACI,MAAM,CAACM,IAAI,GAAG,CAAC;IAC9E,CAAC,MAAM,IAAI,CAACH,MAAM,CAACI,GAAG,EAAE;MACpB,MAAM,IAAIX,WAAW,CAAC,8BAA8B,IAAI,CAACI,MAAM,CAACM,IAAI,GAAG,CAAC;IAC5E;IACA,OAAOH,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMK,4BAA4B,GACrCR,MAA8B,IACJ;EAC1B,OAAO,IAAIF,sBAAsB,CAACE,MAAM,CAAC;AAC7C,CAAC","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import type { BatchWriteItem, BatchWriteResult, IDeleteBatchItem, IPutBatchItem } from "../../utils/batch/types.js";
2
+ import type { IEntityWriteBatch } from "./types.js";
3
+ import type { ITableWriteBatch } from "../../utils/table/types.js";
4
+ import type { EntityOption } from "./getEntity.js";
5
+ import type { GenericRecord } from "@webiny/api/types.js";
6
+ export interface IEntityWriteBatchParams<T = GenericRecord> {
7
+ entity: EntityOption;
8
+ put?: IPutBatchItem<T>[];
9
+ delete?: IDeleteBatchItem[];
10
+ }
11
+ export declare class EntityWriteBatch<T> implements IEntityWriteBatch<T> {
12
+ private readonly entity;
13
+ private readonly _items;
14
+ private readonly builder;
15
+ get total(): number;
16
+ get items(): BatchWriteItem[];
17
+ constructor(params: IEntityWriteBatchParams);
18
+ put(item: IPutBatchItem<T>): void;
19
+ delete(item: IDeleteBatchItem): void;
20
+ combine(items: BatchWriteItem[]): ITableWriteBatch;
21
+ execute(): Promise<BatchWriteResult>;
22
+ }
23
+ export declare const createEntityWriteBatch: (params: IEntityWriteBatchParams) => IEntityWriteBatch;
@@ -0,0 +1,51 @@
1
+ import { batchWriteAll } from "../batch/batchWrite.js";
2
+ import { createTableWriteBatch } from "../table/TableWriteBatch.js";
3
+ import { createEntityWriteBatchBuilder } from "./EntityWriteBatchBuilder.js";
4
+ import { getEntity } from "./getEntity.js";
5
+ export class EntityWriteBatch {
6
+ _items = [];
7
+ get total() {
8
+ return this._items.length;
9
+ }
10
+ get items() {
11
+ return Array.from(this._items);
12
+ }
13
+ constructor(params) {
14
+ this.entity = getEntity(params.entity);
15
+ this.builder = createEntityWriteBatchBuilder(this.entity);
16
+ for (const item of params.put || []) {
17
+ this.put(item);
18
+ }
19
+ for (const item of params.delete || []) {
20
+ this.delete(item);
21
+ }
22
+ }
23
+ put(item) {
24
+ this._items.push(this.builder.put(item));
25
+ }
26
+ delete(item) {
27
+ this._items.push(this.builder.delete(item));
28
+ }
29
+ combine(items) {
30
+ return createTableWriteBatch({
31
+ table: this.entity.table,
32
+ items: this._items.concat(items)
33
+ });
34
+ }
35
+ async execute() {
36
+ if (this._items.length === 0) {
37
+ return [];
38
+ }
39
+ const items = Array.from(this._items);
40
+ this._items.length = 0;
41
+ return await batchWriteAll({
42
+ items,
43
+ table: this.entity.table
44
+ });
45
+ }
46
+ }
47
+ export const createEntityWriteBatch = params => {
48
+ return new EntityWriteBatch(params);
49
+ };
50
+
51
+ //# sourceMappingURL=EntityWriteBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["batchWriteAll","createTableWriteBatch","createEntityWriteBatchBuilder","getEntity","EntityWriteBatch","_items","total","length","items","Array","from","constructor","params","entity","builder","item","put","delete","push","combine","table","concat","execute","createEntityWriteBatch"],"sources":["EntityWriteBatch.ts"],"sourcesContent":["import type { Entity as ToolboxEntity, TableDef } from \"~/toolbox.js\";\nimport { batchWriteAll } from \"~/utils/batch/batchWrite.js\";\nimport type {\n BatchWriteItem,\n BatchWriteResult,\n IDeleteBatchItem,\n IPutBatchItem\n} from \"~/utils/batch/types.js\";\nimport type { IEntityWriteBatch, IEntityWriteBatchBuilder } from \"./types.js\";\nimport type { ITableWriteBatch } from \"~/utils/table/types.js\";\nimport { createTableWriteBatch } from \"~/utils/table/TableWriteBatch.js\";\nimport { createEntityWriteBatchBuilder } from \"./EntityWriteBatchBuilder.js\";\nimport type { EntityOption } from \"./getEntity.js\";\nimport { getEntity } from \"./getEntity.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface IEntityWriteBatchParams<T = GenericRecord> {\n entity: EntityOption;\n put?: IPutBatchItem<T>[];\n delete?: IDeleteBatchItem[];\n}\n\nexport class EntityWriteBatch<T> implements IEntityWriteBatch<T> {\n private readonly entity: ToolboxEntity;\n private readonly _items: BatchWriteItem[] = [];\n private readonly builder: IEntityWriteBatchBuilder;\n\n public get total(): number {\n return this._items.length;\n }\n\n public get items(): BatchWriteItem[] {\n return Array.from(this._items);\n }\n\n public constructor(params: IEntityWriteBatchParams) {\n this.entity = getEntity(params.entity);\n this.builder = createEntityWriteBatchBuilder(this.entity);\n for (const item of params.put || []) {\n this.put(item);\n }\n for (const item of params.delete || []) {\n this.delete(item);\n }\n }\n\n public put(item: IPutBatchItem<T>): void {\n this._items.push(this.builder.put(item));\n }\n\n public delete(item: IDeleteBatchItem): void {\n this._items.push(this.builder.delete(item));\n }\n\n public combine(items: BatchWriteItem[]): ITableWriteBatch {\n return createTableWriteBatch({\n table: this.entity!.table as TableDef,\n items: this._items.concat(items)\n });\n }\n\n public async execute(): Promise<BatchWriteResult> {\n if (this._items.length === 0) {\n return [];\n }\n const items = Array.from(this._items);\n this._items.length = 0;\n return await batchWriteAll({\n items,\n table: this.entity.table\n });\n }\n}\n\nexport const createEntityWriteBatch = (params: IEntityWriteBatchParams): IEntityWriteBatch => {\n return new EntityWriteBatch(params);\n};\n"],"mappings":"AACA,SAASA,aAAa;AAStB,SAASC,qBAAqB;AAC9B,SAASC,6BAA6B;AAEtC,SAASC,SAAS;AASlB,OAAO,MAAMC,gBAAgB,CAAoC;EAE5CC,MAAM,GAAqB,EAAE;EAG9C,IAAWC,KAAKA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACD,MAAM,CAACE,MAAM;EAC7B;EAEA,IAAWC,KAAKA,CAAA,EAAqB;IACjC,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACL,MAAM,CAAC;EAClC;EAEOM,WAAWA,CAACC,MAA+B,EAAE;IAChD,IAAI,CAACC,MAAM,GAAGV,SAAS,CAACS,MAAM,CAACC,MAAM,CAAC;IACtC,IAAI,CAACC,OAAO,GAAGZ,6BAA6B,CAAC,IAAI,CAACW,MAAM,CAAC;IACzD,KAAK,MAAME,IAAI,IAAIH,MAAM,CAACI,GAAG,IAAI,EAAE,EAAE;MACjC,IAAI,CAACA,GAAG,CAACD,IAAI,CAAC;IAClB;IACA,KAAK,MAAMA,IAAI,IAAIH,MAAM,CAACK,MAAM,IAAI,EAAE,EAAE;MACpC,IAAI,CAACA,MAAM,CAACF,IAAI,CAAC;IACrB;EACJ;EAEOC,GAAGA,CAACD,IAAsB,EAAQ;IACrC,IAAI,CAACV,MAAM,CAACa,IAAI,CAAC,IAAI,CAACJ,OAAO,CAACE,GAAG,CAACD,IAAI,CAAC,CAAC;EAC5C;EAEOE,MAAMA,CAACF,IAAsB,EAAQ;IACxC,IAAI,CAACV,MAAM,CAACa,IAAI,CAAC,IAAI,CAACJ,OAAO,CAACG,MAAM,CAACF,IAAI,CAAC,CAAC;EAC/C;EAEOI,OAAOA,CAACX,KAAuB,EAAoB;IACtD,OAAOP,qBAAqB,CAAC;MACzBmB,KAAK,EAAE,IAAI,CAACP,MAAM,CAAEO,KAAiB;MACrCZ,KAAK,EAAE,IAAI,CAACH,MAAM,CAACgB,MAAM,CAACb,KAAK;IACnC,CAAC,CAAC;EACN;EAEA,MAAac,OAAOA,CAAA,EAA8B;IAC9C,IAAI,IAAI,CAACjB,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE;MAC1B,OAAO,EAAE;IACb;IACA,MAAMC,KAAK,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACL,MAAM,CAAC;IACrC,IAAI,CAACA,MAAM,CAACE,MAAM,GAAG,CAAC;IACtB,OAAO,MAAMP,aAAa,CAAC;MACvBQ,KAAK;MACLY,KAAK,EAAE,IAAI,CAACP,MAAM,CAACO;IACvB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,sBAAsB,GAAIX,MAA+B,IAAwB;EAC1F,OAAO,IAAIR,gBAAgB,CAACQ,MAAM,CAAC;AACvC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { Entity } from "../../toolbox.js";
2
+ import type { BatchWriteItem, IDeleteBatchItem, IPutBatchItem } from "../../utils/batch/types.js";
3
+ import type { IEntityWriteBatchBuilder } from "./types.js";
4
+ import type { EntityOption } from "./getEntity.js";
5
+ export declare class EntityWriteBatchBuilder implements IEntityWriteBatchBuilder {
6
+ private readonly entity;
7
+ constructor(entity: EntityOption);
8
+ put<T extends Record<string, any>>(item: IPutBatchItem<T>): BatchWriteItem;
9
+ delete(item: IDeleteBatchItem): BatchWriteItem;
10
+ }
11
+ export declare const createEntityWriteBatchBuilder: (entity: Entity) => IEntityWriteBatchBuilder;
@@ -0,0 +1,20 @@
1
+ import { getEntity } from "./getEntity.js";
2
+ export class EntityWriteBatchBuilder {
3
+ constructor(entity) {
4
+ this.entity = getEntity(entity);
5
+ }
6
+ put(item) {
7
+ return this.entity.putBatch(item, {
8
+ execute: true,
9
+ strictSchemaCheck: false
10
+ });
11
+ }
12
+ delete(item) {
13
+ return this.entity.deleteBatch(item);
14
+ }
15
+ }
16
+ export const createEntityWriteBatchBuilder = entity => {
17
+ return new EntityWriteBatchBuilder(entity);
18
+ };
19
+
20
+ //# sourceMappingURL=EntityWriteBatchBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getEntity","EntityWriteBatchBuilder","constructor","entity","put","item","putBatch","execute","strictSchemaCheck","delete","deleteBatch","createEntityWriteBatchBuilder"],"sources":["EntityWriteBatchBuilder.ts"],"sourcesContent":["import type { Entity } from \"~/toolbox.js\";\nimport type { BatchWriteItem, IDeleteBatchItem, IPutBatchItem } from \"~/utils/batch/types.js\";\nimport type { IEntityWriteBatchBuilder } from \"./types.js\";\nimport type { EntityOption } from \"./getEntity.js\";\nimport { getEntity } from \"./getEntity.js\";\n\nexport class EntityWriteBatchBuilder implements IEntityWriteBatchBuilder {\n private readonly entity: Entity;\n\n public constructor(entity: EntityOption) {\n this.entity = getEntity(entity);\n }\n\n public put<T extends Record<string, any>>(item: IPutBatchItem<T>): BatchWriteItem {\n return this.entity.putBatch(item, {\n execute: true,\n strictSchemaCheck: false\n });\n }\n\n public delete(item: IDeleteBatchItem): BatchWriteItem {\n return this.entity.deleteBatch(item);\n }\n}\n\nexport const createEntityWriteBatchBuilder = (entity: Entity): IEntityWriteBatchBuilder => {\n return new EntityWriteBatchBuilder(entity);\n};\n"],"mappings":"AAIA,SAASA,SAAS;AAElB,OAAO,MAAMC,uBAAuB,CAAqC;EAG9DC,WAAWA,CAACC,MAAoB,EAAE;IACrC,IAAI,CAACA,MAAM,GAAGH,SAAS,CAACG,MAAM,CAAC;EACnC;EAEOC,GAAGA,CAAgCC,IAAsB,EAAkB;IAC9E,OAAO,IAAI,CAACF,MAAM,CAACG,QAAQ,CAACD,IAAI,EAAE;MAC9BE,OAAO,EAAE,IAAI;MACbC,iBAAiB,EAAE;IACvB,CAAC,CAAC;EACN;EAEOC,MAAMA,CAACJ,IAAsB,EAAkB;IAClD,OAAO,IAAI,CAACF,MAAM,CAACO,WAAW,CAACL,IAAI,CAAC;EACxC;AACJ;AAEA,OAAO,MAAMM,6BAA6B,GAAIR,MAAc,IAA+B;EACvF,OAAO,IAAIF,uBAAuB,CAACE,MAAM,CAAC;AAC9C,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { Entity as ToolboxEntity } from "../../toolbox.js";
2
+ import type { Entity } from "./Entity.js";
3
+ export type EntityOption = ToolboxEntity | Entity;
4
+ export declare const getEntity: (entity: EntityOption) => ToolboxEntity;
@@ -0,0 +1,12 @@
1
+ import { Entity as ToolboxEntity } from "../../toolbox.js";
2
+ export const getEntity = entity => {
3
+ const result = entity instanceof ToolboxEntity ? entity : entity.entity;
4
+ if (!result.name) {
5
+ throw new Error(`No name provided for entity.`);
6
+ } else if (!result.table) {
7
+ throw new Error(`No table provided for entity ${result.name}.`);
8
+ }
9
+ return result;
10
+ };
11
+
12
+ //# sourceMappingURL=getEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Entity","ToolboxEntity","getEntity","entity","result","name","Error","table"],"sources":["getEntity.ts"],"sourcesContent":["import { Entity as ToolboxEntity } from \"~/toolbox.js\";\nimport type { Entity } from \"./Entity.js\";\n\nexport type EntityOption = ToolboxEntity | Entity;\n\nexport const getEntity = (entity: EntityOption): ToolboxEntity => {\n const result = entity instanceof ToolboxEntity ? entity : entity.entity;\n if (!result.name) {\n throw new Error(`No name provided for entity.`);\n } else if (!result.table) {\n throw new Error(`No table provided for entity ${result.name}.`);\n }\n return result;\n};\n"],"mappings":"AAAA,SAASA,MAAM,IAAIC,aAAa;AAKhC,OAAO,MAAMC,SAAS,GAAIC,MAAoB,IAAoB;EAC9D,MAAMC,MAAM,GAAGD,MAAM,YAAYF,aAAa,GAAGE,MAAM,GAAGA,MAAM,CAACA,MAAM;EACvE,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE;IACd,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;EACnD,CAAC,MAAM,IAAI,CAACF,MAAM,CAACG,KAAK,EAAE;IACtB,MAAM,IAAID,KAAK,CAAC,gCAAgCF,MAAM,CAACC,IAAI,GAAG,CAAC;EACnE;EACA,OAAOD,MAAM;AACjB,CAAC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export * from "./Entity.js";
2
+ export * from "./EntityReadBatch.js";
3
+ export * from "./EntityReadBatchBuilder.js";
4
+ export * from "./EntityWriteBatch.js";
5
+ export * from "./EntityWriteBatchBuilder.js";
6
+ export * from "./getEntity.js";
7
+ export * from "./types.js";