@webiny/db-dynamodb 5.41.1 → 5.41.2-beta.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/DynamoDbDriver.d.ts +3 -11
- package/DynamoDbDriver.js +0 -22
- package/DynamoDbDriver.js.map +1 -1
- package/package.json +11 -11
- package/types.d.ts +0 -21
- package/types.js.map +1 -1
- package/utils/batchRead.d.ts +2 -1
- package/utils/batchRead.js.map +1 -1
package/DynamoDbDriver.d.ts
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb";
|
|
2
|
-
import { DbDriver
|
|
2
|
+
import { DbDriver } from "@webiny/db";
|
|
3
3
|
interface ConstructorArgs {
|
|
4
4
|
documentClient: DynamoDBDocument;
|
|
5
5
|
}
|
|
6
|
-
declare class DynamoDbDriver implements DbDriver {
|
|
7
|
-
|
|
8
|
-
documentClient: DynamoDBDocument;
|
|
6
|
+
declare class DynamoDbDriver implements DbDriver<DynamoDBDocument> {
|
|
7
|
+
readonly documentClient: DynamoDBDocument;
|
|
9
8
|
constructor({ documentClient }: ConstructorArgs);
|
|
10
9
|
getClient(): DynamoDBDocument;
|
|
11
|
-
create(): Promise<Result>;
|
|
12
|
-
update(): Promise<Result>;
|
|
13
|
-
delete(): Promise<Result>;
|
|
14
|
-
read<T>(): Promise<Result<T[]>>;
|
|
15
|
-
createLog(): Promise<Result>;
|
|
16
|
-
readLogs<T>(): Promise<Result<T[]>>;
|
|
17
|
-
getBatchProcess(): void;
|
|
18
10
|
}
|
|
19
11
|
export default DynamoDbDriver;
|
package/DynamoDbDriver.js
CHANGED
|
@@ -8,33 +8,11 @@ class DynamoDbDriver {
|
|
|
8
8
|
constructor({
|
|
9
9
|
documentClient
|
|
10
10
|
}) {
|
|
11
|
-
this.batchProcesses = {};
|
|
12
11
|
this.documentClient = documentClient;
|
|
13
12
|
}
|
|
14
13
|
getClient() {
|
|
15
14
|
return this.documentClient;
|
|
16
15
|
}
|
|
17
|
-
async create() {
|
|
18
|
-
return [true, {}];
|
|
19
|
-
}
|
|
20
|
-
async update() {
|
|
21
|
-
return [true, {}];
|
|
22
|
-
}
|
|
23
|
-
async delete() {
|
|
24
|
-
return [true, {}];
|
|
25
|
-
}
|
|
26
|
-
async read() {
|
|
27
|
-
return [[], {}];
|
|
28
|
-
}
|
|
29
|
-
async createLog() {
|
|
30
|
-
return [true, {}];
|
|
31
|
-
}
|
|
32
|
-
async readLogs() {
|
|
33
|
-
return this.read();
|
|
34
|
-
}
|
|
35
|
-
getBatchProcess() {
|
|
36
|
-
// not empty
|
|
37
|
-
}
|
|
38
16
|
}
|
|
39
17
|
var _default = exports.default = DynamoDbDriver;
|
|
40
18
|
|
package/DynamoDbDriver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DynamoDbDriver","constructor","documentClient","
|
|
1
|
+
{"version":3,"names":["DynamoDbDriver","constructor","documentClient","getClient","_default","exports","default"],"sources":["DynamoDbDriver.ts"],"sourcesContent":["import { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb\";\nimport { DbDriver } from \"@webiny/db\";\n\ninterface ConstructorArgs {\n documentClient: DynamoDBDocument;\n}\n\nclass DynamoDbDriver implements DbDriver<DynamoDBDocument> {\n public readonly documentClient: DynamoDBDocument;\n constructor({ documentClient }: ConstructorArgs) {\n this.documentClient = documentClient;\n }\n\n getClient() {\n return this.documentClient;\n }\n}\n\nexport default DynamoDbDriver;\n"],"mappings":";;;;;;AAOA,MAAMA,cAAc,CAAuC;EAEvDC,WAAWA,CAAC;IAAEC;EAAgC,CAAC,EAAE;IAC7C,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEAC,SAASA,CAAA,EAAG;IACR,OAAO,IAAI,CAACD,cAAc;EAC9B;AACJ;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcN,cAAc","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/db-dynamodb",
|
|
3
|
-
"version": "5.41.
|
|
3
|
+
"version": "5.41.2-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
"author": "Webiny Ltd",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/api": "5.41.
|
|
14
|
-
"@webiny/aws-sdk": "5.41.
|
|
15
|
-
"@webiny/db": "5.41.
|
|
16
|
-
"@webiny/error": "5.41.
|
|
17
|
-
"@webiny/handler-db": "5.41.
|
|
18
|
-
"@webiny/plugins": "5.41.
|
|
19
|
-
"@webiny/utils": "5.41.
|
|
13
|
+
"@webiny/api": "5.41.2-beta.0",
|
|
14
|
+
"@webiny/aws-sdk": "5.41.2-beta.0",
|
|
15
|
+
"@webiny/db": "5.41.2-beta.0",
|
|
16
|
+
"@webiny/error": "5.41.2-beta.0",
|
|
17
|
+
"@webiny/handler-db": "5.41.2-beta.0",
|
|
18
|
+
"@webiny/plugins": "5.41.2-beta.0",
|
|
19
|
+
"@webiny/utils": "5.41.2-beta.0",
|
|
20
20
|
"date-fns": "2.29.3",
|
|
21
21
|
"dot-prop": "6.0.1",
|
|
22
22
|
"dynamodb-toolbox": "0.9.2",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"@babel/cli": "7.24.1",
|
|
28
28
|
"@babel/core": "7.24.3",
|
|
29
29
|
"@types/is-number": "7.0.3",
|
|
30
|
-
"@webiny/cli": "5.41.
|
|
31
|
-
"@webiny/project-utils": "5.41.
|
|
30
|
+
"@webiny/cli": "5.41.2-beta.0",
|
|
31
|
+
"@webiny/project-utils": "5.41.2-beta.0",
|
|
32
32
|
"jest": "29.7.0",
|
|
33
33
|
"jest-dynalite": "3.6.1",
|
|
34
34
|
"rimraf": "5.0.5",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"build": "yarn webiny run build",
|
|
44
44
|
"watch": "yarn webiny run watch"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "a259e2af938ceb1e2d35b2bef9edcee4459352de"
|
|
47
47
|
}
|
package/types.d.ts
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
export interface OperatorArgs {
|
|
2
|
-
expression: string;
|
|
3
|
-
attributeNames: Record<string, any>;
|
|
4
|
-
attributeValues: Record<string, any>;
|
|
5
|
-
}
|
|
6
|
-
interface CanProcessArgs {
|
|
7
|
-
key: string;
|
|
8
|
-
value: any;
|
|
9
|
-
args: OperatorArgs;
|
|
10
|
-
}
|
|
11
|
-
interface ProcessArgs {
|
|
12
|
-
key: string;
|
|
13
|
-
value: any;
|
|
14
|
-
args: OperatorArgs;
|
|
15
|
-
processStatement: any;
|
|
16
|
-
}
|
|
17
|
-
export interface Operator {
|
|
18
|
-
canProcess: ({ key }: CanProcessArgs) => boolean;
|
|
19
|
-
process: ({ key, value, args }: ProcessArgs) => void;
|
|
20
|
-
}
|
|
21
1
|
/**
|
|
22
2
|
* We use this definition to search for a value in any given field that was passed.
|
|
23
3
|
* It works as an "OR" condition.
|
|
@@ -63,4 +43,3 @@ export type DbItem<TData extends Record<string, any> = Record<string, any>> = {
|
|
|
63
43
|
TYPE: string;
|
|
64
44
|
data: TData;
|
|
65
45
|
};
|
|
66
|
-
export {};
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["/**\n * We use this definition to search for a value in any given field that was passed.\n * It works as an \"OR\" condition.\n */\nexport interface DynamoDbContainsFilter {\n fields: string[];\n value: string;\n}\n\nexport interface ProcessStatementArgsParam {\n expression: string;\n attributeNames: Record<string, any>;\n attributeValues: Record<string, any>;\n}\nexport interface ProcessStatementQueryParam {\n [key: string]: any;\n}\nexport interface ProcessStatementParams {\n args: ProcessStatementArgsParam;\n query: ProcessStatementQueryParam;\n}\n\nexport interface ProcessStatementCallable {\n (params: ProcessStatementParams): void;\n}\n\nexport interface Query {\n [key: string]: string;\n}\nexport interface QueryKeyField {\n name: string;\n}\nexport interface QueryKey {\n fields: QueryKeyField[];\n primary?: boolean;\n unique?: boolean;\n name: string;\n}\nexport type QueryKeys = QueryKey[];\n\nexport type QuerySort = Record<string, -1 | 1>;\n\nexport type DbItem<TData extends Record<string, any> = Record<string, any>> = {\n PK: string;\n SK: string;\n GSI1_PK: string;\n GSI1_SK: string;\n TYPE: string;\n data: TData;\n};\n"],"mappings":"","ignoreList":[]}
|
package/utils/batchRead.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TableDef } from "../toolbox";
|
|
2
|
+
import { GenericRecord } from "@webiny/api/types";
|
|
2
3
|
export interface BatchReadItem {
|
|
3
4
|
Table?: TableDef;
|
|
4
5
|
Key: any;
|
|
@@ -11,4 +12,4 @@ export interface BatchReadParams {
|
|
|
11
12
|
* This helper function is meant to be used to batch read from one table.
|
|
12
13
|
* It will fetch all results, as there is a next() method call built in.
|
|
13
14
|
*/
|
|
14
|
-
export declare const batchReadAll: <T = any
|
|
15
|
+
export declare const batchReadAll: <T = GenericRecord<PropertyKey, any>>(params: BatchReadParams, maxChunk?: number) => Promise<T[]>;
|
package/utils/batchRead.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chunk","_interopRequireDefault","require","_error","MAX_BATCH_ITEMS","flatten","responses","entries","values","Object","items","push","batchReadAllChunk","params","table","records","result","batchGet","Responses","next","previous","nextResult","batchReadAll","maxChunk","length","WebinyError","chunkItemsList","lodashChunk","chunkItems","results","exports"],"sources":["batchRead.ts"],"sourcesContent":["import lodashChunk from \"lodash/chunk\";\nimport WebinyError from \"@webiny/error\";\nimport { TableDef } from \"~/toolbox\";\n\nexport interface BatchReadItem {\n Table?: TableDef;\n Key: any;\n}\nexport interface BatchReadParams {\n table?: TableDef;\n items: BatchReadItem[];\n}\n\nconst MAX_BATCH_ITEMS = 100;\n\nconst flatten = (responses: Record<string, any[]>): any[] => {\n const entries = [];\n const values = Object.values(responses);\n for (const items of values) {\n entries.push(...items);\n }\n return entries;\n};\n\ninterface BatchReadAllChunkParams {\n table?: TableDef;\n items: BatchReadItem[];\n}\nconst batchReadAllChunk = async <T = any>(params: BatchReadAllChunkParams): Promise<T[]> => {\n const { table, items } = params;\n const records: T[] = [];\n\n if (!table) {\n return records;\n }\n\n const result = await table.batchGet(items);\n if (!result || !result.Responses) {\n return records;\n }\n records.push(...flatten(result.Responses));\n if (!result.next || typeof result.next !== \"function\") {\n return records;\n }\n let previous = result;\n while (typeof previous.next === \"function\") {\n const nextResult = await previous.next();\n if (!nextResult) {\n return records;\n }\n records.push(...flatten(nextResult.Responses));\n previous = nextResult;\n }\n return records;\n};\n/**\n * This helper function is meant to be used to batch read from one table.\n * It will fetch all results, as there is a next() method call built in.\n */\nexport const batchReadAll = async <T =
|
|
1
|
+
{"version":3,"names":["_chunk","_interopRequireDefault","require","_error","MAX_BATCH_ITEMS","flatten","responses","entries","values","Object","items","push","batchReadAllChunk","params","table","records","result","batchGet","Responses","next","previous","nextResult","batchReadAll","maxChunk","length","WebinyError","chunkItemsList","lodashChunk","chunkItems","results","exports"],"sources":["batchRead.ts"],"sourcesContent":["import lodashChunk from \"lodash/chunk\";\nimport WebinyError from \"@webiny/error\";\nimport { TableDef } from \"~/toolbox\";\nimport { GenericRecord } from \"@webiny/api/types\";\n\nexport interface BatchReadItem {\n Table?: TableDef;\n Key: any;\n}\nexport interface BatchReadParams {\n table?: TableDef;\n items: BatchReadItem[];\n}\n\nconst MAX_BATCH_ITEMS = 100;\n\nconst flatten = (responses: Record<string, any[]>): any[] => {\n const entries = [];\n const values = Object.values(responses);\n for (const items of values) {\n entries.push(...items);\n }\n return entries;\n};\n\ninterface BatchReadAllChunkParams {\n table?: TableDef;\n items: BatchReadItem[];\n}\nconst batchReadAllChunk = async <T = any>(params: BatchReadAllChunkParams): Promise<T[]> => {\n const { table, items } = params;\n const records: T[] = [];\n\n if (!table) {\n return records;\n }\n\n const result = await table.batchGet(items);\n if (!result || !result.Responses) {\n return records;\n }\n records.push(...flatten(result.Responses));\n if (!result.next || typeof result.next !== \"function\") {\n return records;\n }\n let previous = result;\n while (typeof previous.next === \"function\") {\n const nextResult = await previous.next();\n if (!nextResult) {\n return records;\n }\n records.push(...flatten(nextResult.Responses));\n previous = nextResult;\n }\n return records;\n};\n/**\n * This helper function is meant to be used to batch read from one table.\n * It will fetch all results, as there is a next() method call built in.\n */\nexport const batchReadAll = async <T = GenericRecord>(\n params: BatchReadParams,\n maxChunk = MAX_BATCH_ITEMS\n): Promise<T[]> => {\n if (params.items.length === 0) {\n return [];\n } else if (maxChunk > MAX_BATCH_ITEMS) {\n throw new WebinyError(\n `Cannot set to load more than ${MAX_BATCH_ITEMS} items from the DynamoDB at once.`,\n \"DYNAMODB_MAX_BATCH_GET_LIMIT_ERROR\",\n {\n maxChunk\n }\n );\n }\n\n const records: T[] = [];\n\n const chunkItemsList = lodashChunk(params.items, maxChunk);\n\n for (const chunkItems of chunkItemsList) {\n const results = await batchReadAllChunk<T>({\n table: params.table,\n items: chunkItems\n });\n\n records.push(...results);\n }\n\n return records;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAaA,MAAME,eAAe,GAAG,GAAG;AAE3B,MAAMC,OAAO,GAAIC,SAAgC,IAAY;EACzD,MAAMC,OAAO,GAAG,EAAE;EAClB,MAAMC,MAAM,GAAGC,MAAM,CAACD,MAAM,CAACF,SAAS,CAAC;EACvC,KAAK,MAAMI,KAAK,IAAIF,MAAM,EAAE;IACxBD,OAAO,CAACI,IAAI,CAAC,GAAGD,KAAK,CAAC;EAC1B;EACA,OAAOH,OAAO;AAClB,CAAC;AAMD,MAAMK,iBAAiB,GAAG,MAAgBC,MAA+B,IAAmB;EACxF,MAAM;IAAEC,KAAK;IAAEJ;EAAM,CAAC,GAAGG,MAAM;EAC/B,MAAME,OAAY,GAAG,EAAE;EAEvB,IAAI,CAACD,KAAK,EAAE;IACR,OAAOC,OAAO;EAClB;EAEA,MAAMC,MAAM,GAAG,MAAMF,KAAK,CAACG,QAAQ,CAACP,KAAK,CAAC;EAC1C,IAAI,CAACM,MAAM,IAAI,CAACA,MAAM,CAACE,SAAS,EAAE;IAC9B,OAAOH,OAAO;EAClB;EACAA,OAAO,CAACJ,IAAI,CAAC,GAAGN,OAAO,CAACW,MAAM,CAACE,SAAS,CAAC,CAAC;EAC1C,IAAI,CAACF,MAAM,CAACG,IAAI,IAAI,OAAOH,MAAM,CAACG,IAAI,KAAK,UAAU,EAAE;IACnD,OAAOJ,OAAO;EAClB;EACA,IAAIK,QAAQ,GAAGJ,MAAM;EACrB,OAAO,OAAOI,QAAQ,CAACD,IAAI,KAAK,UAAU,EAAE;IACxC,MAAME,UAAU,GAAG,MAAMD,QAAQ,CAACD,IAAI,CAAC,CAAC;IACxC,IAAI,CAACE,UAAU,EAAE;MACb,OAAON,OAAO;IAClB;IACAA,OAAO,CAACJ,IAAI,CAAC,GAAGN,OAAO,CAACgB,UAAU,CAACH,SAAS,CAAC,CAAC;IAC9CE,QAAQ,GAAGC,UAAU;EACzB;EACA,OAAON,OAAO;AAClB,CAAC;AACD;AACA;AACA;AACA;AACO,MAAMO,YAAY,GAAG,MAAAA,CACxBT,MAAuB,EACvBU,QAAQ,GAAGnB,eAAe,KACX;EACf,IAAIS,MAAM,CAACH,KAAK,CAACc,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO,EAAE;EACb,CAAC,MAAM,IAAID,QAAQ,GAAGnB,eAAe,EAAE;IACnC,MAAM,IAAIqB,cAAW,CAChB,gCAA+BrB,eAAgB,mCAAkC,EAClF,oCAAoC,EACpC;MACImB;IACJ,CACJ,CAAC;EACL;EAEA,MAAMR,OAAY,GAAG,EAAE;EAEvB,MAAMW,cAAc,GAAG,IAAAC,cAAW,EAACd,MAAM,CAACH,KAAK,EAAEa,QAAQ,CAAC;EAE1D,KAAK,MAAMK,UAAU,IAAIF,cAAc,EAAE;IACrC,MAAMG,OAAO,GAAG,MAAMjB,iBAAiB,CAAI;MACvCE,KAAK,EAAED,MAAM,CAACC,KAAK;MACnBJ,KAAK,EAAEkB;IACX,CAAC,CAAC;IAEFb,OAAO,CAACJ,IAAI,CAAC,GAAGkB,OAAO,CAAC;EAC5B;EAEA,OAAOd,OAAO;AAClB,CAAC;AAACe,OAAA,CAAAR,YAAA,GAAAA,YAAA","ignoreList":[]}
|