electrodb 2.10.5 → 2.10.7
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/package.json +1 -1
- package/src/client.js +2 -2
- package/src/entity.js +13 -18
- package/src/operations.js +14 -0
package/package.json
CHANGED
package/src/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const lib = require(
|
|
2
|
-
const util = require(
|
|
1
|
+
const lib = require('@aws-sdk/lib-dynamodb')
|
|
2
|
+
const util = require('@aws-sdk/lib-dynamodb/dist-cjs/commands/utils')
|
|
3
3
|
const { isFunction } = require("./validations");
|
|
4
4
|
const { ElectroError, ErrorCodes } = require("./errors");
|
|
5
5
|
const DocumentClientVersions = {
|
package/src/entity.js
CHANGED
|
@@ -494,7 +494,7 @@ class Entity {
|
|
|
494
494
|
async go(method, parameters = {}, config = {}) {
|
|
495
495
|
let stackTrace;
|
|
496
496
|
if (!config.originalErr) {
|
|
497
|
-
stackTrace = new e.ElectroError(e.ErrorCodes.AWSError)
|
|
497
|
+
stackTrace = new e.ElectroError(e.ErrorCodes.AWSError);
|
|
498
498
|
}
|
|
499
499
|
try {
|
|
500
500
|
switch (method) {
|
|
@@ -513,13 +513,9 @@ class Entity {
|
|
|
513
513
|
return Promise.reject(err);
|
|
514
514
|
} else {
|
|
515
515
|
if (err.__isAWSError) {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
err,
|
|
520
|
-
);
|
|
521
|
-
error.stack = stackTrace;
|
|
522
|
-
return Promise.reject(error);
|
|
516
|
+
stackTrace.message = `Error thrown by DynamoDB client: "${err.message}" - For more detail on this error reference: https://electrodb.dev/en/reference/errors/#aws-error`;
|
|
517
|
+
stackTrace.cause = err;
|
|
518
|
+
return Promise.reject(stackTrace);
|
|
523
519
|
} else if (err.isElectroError) {
|
|
524
520
|
return Promise.reject(err);
|
|
525
521
|
} else {
|
|
@@ -926,7 +922,7 @@ class Entity {
|
|
|
926
922
|
formatResponse(response, index, config = {}) {
|
|
927
923
|
let stackTrace;
|
|
928
924
|
if (!config.originalErr) {
|
|
929
|
-
stackTrace = new e.ElectroError(e.ErrorCodes.AWSError)
|
|
925
|
+
stackTrace = new e.ElectroError(e.ErrorCodes.AWSError);
|
|
930
926
|
}
|
|
931
927
|
try {
|
|
932
928
|
let results = {};
|
|
@@ -1014,17 +1010,16 @@ class Entity {
|
|
|
1014
1010
|
|
|
1015
1011
|
return { data: results };
|
|
1016
1012
|
} catch (err) {
|
|
1017
|
-
if (
|
|
1013
|
+
if (
|
|
1014
|
+
config.originalErr ||
|
|
1015
|
+
stackTrace === undefined ||
|
|
1016
|
+
err.isElectroError
|
|
1017
|
+
) {
|
|
1018
1018
|
throw err;
|
|
1019
1019
|
} else {
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
err,
|
|
1024
|
-
);
|
|
1025
|
-
error.stack = stackTrace;
|
|
1026
|
-
|
|
1027
|
-
throw error;
|
|
1020
|
+
stackTrace.message = `Error thrown by DynamoDB client: "${err.message}" - For more detail on this error reference: https://electrodb.dev/en/reference/errors/#aws-error`;
|
|
1021
|
+
stackTrace.cause = err;
|
|
1022
|
+
throw stackTrace;
|
|
1028
1023
|
}
|
|
1029
1024
|
}
|
|
1030
1025
|
}
|
package/src/operations.js
CHANGED
|
@@ -28,8 +28,21 @@ class ExpressionState {
|
|
|
28
28
|
return `${this.prefix}${this.counts[name]++}`;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
formatName(name = "") {
|
|
32
|
+
const nameWasNotANumber = isNaN(name);
|
|
33
|
+
name = `${name}`.replaceAll(/[^\w]/g, "");
|
|
34
|
+
if (name.length === 0) {
|
|
35
|
+
name = "p";
|
|
36
|
+
} else if (nameWasNotANumber !== isNaN(name)) {
|
|
37
|
+
// name became number due to replace
|
|
38
|
+
name = `p${name}`;
|
|
39
|
+
}
|
|
40
|
+
return name;
|
|
41
|
+
}
|
|
42
|
+
|
|
31
43
|
// todo: make the structure: name, value, paths
|
|
32
44
|
setName(paths, name, value) {
|
|
45
|
+
name = this.formatName(name);
|
|
33
46
|
let json = "";
|
|
34
47
|
let expression = "";
|
|
35
48
|
const prop = `#${name}`;
|
|
@@ -53,6 +66,7 @@ class ExpressionState {
|
|
|
53
66
|
}
|
|
54
67
|
|
|
55
68
|
setValue(name, value) {
|
|
69
|
+
name = this.formatName(name);
|
|
56
70
|
let valueCount = this.incrementName(name);
|
|
57
71
|
let expression = `:${name}${valueCount}`;
|
|
58
72
|
this.values[expression] = value;
|