@creator.co/wapi 1.7.6-alpha → 1.7.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/dist/package-lock.json +910 -4501
- package/dist/package.json +6 -6
- package/dist/src/BaseEvent/EventProcessor.js +4 -0
- package/dist/src/BaseEvent/EventProcessor.js.map +1 -1
- package/dist/src/BaseEvent/Transaction.d.ts +2 -0
- package/dist/src/BaseEvent/Transaction.js.map +1 -1
- package/dist/src/Util/Utils.d.ts +4 -0
- package/dist/src/Util/Utils.js +29 -0
- package/dist/src/Util/Utils.js.map +1 -1
- package/package.json +6 -6
- package/src/BaseEvent/EventProcessor.ts +3 -0
- package/src/BaseEvent/Transaction.ts +2 -0
- package/src/Util/Utils.ts +18 -0
- package/tests/BaseEvent/EventProcessor.test.ts +10 -6
- package/tests/Database/DatabaseManager.test.ts +2 -2
- package/dist/src/Database/integrations/dynamo/DynamoTransaction.d.ts +0 -12
- package/dist/src/Database/integrations/dynamo/DynamoTransaction.js +0 -30
- package/dist/src/Database/integrations/dynamo/DynamoTransaction.js.map +0 -1
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@creator.co/wapi",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-sdk/client-dynamodb": "^3.574.0",
|
|
22
22
|
"@aws-sdk/client-kms": "^3.556.0",
|
|
23
|
-
"@aws-sdk/client-secrets-manager": "3.
|
|
24
|
-
"@aws-sdk/client-ses": "3.
|
|
25
|
-
"@aws-sdk/client-sns": "3.
|
|
26
|
-
"@aws-sdk/client-ssm": "3.
|
|
27
|
-
"@aws-sdk/credential-provider-node": "3.
|
|
23
|
+
"@aws-sdk/client-secrets-manager": "^3.576.0",
|
|
24
|
+
"@aws-sdk/client-ses": "^3.576.0",
|
|
25
|
+
"@aws-sdk/client-sns": "^3.576.0",
|
|
26
|
+
"@aws-sdk/client-ssm": "^3.576.0",
|
|
27
|
+
"@aws-sdk/credential-provider-node": "^3.576.0",
|
|
28
28
|
"@smithy/node-http-handler": "^3.0.0",
|
|
29
29
|
"@types/email-templates": "^10.0.1",
|
|
30
30
|
"@types/nodemailer": "^6.4.10",
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import Transaction from './Transaction.js';
|
|
11
11
|
import Response from '../API/Response.js';
|
|
12
12
|
import Globals from '../Globals.js';
|
|
13
|
+
import Utils from '../Util/Utils.js';
|
|
13
14
|
/**
|
|
14
15
|
* EventProcessor class that processes events from an SQS queue.
|
|
15
16
|
* @template ResponseInnerType - The type of the inner response object.
|
|
@@ -57,9 +58,12 @@ export default class EventProcessor {
|
|
|
57
58
|
*/
|
|
58
59
|
processRawEvent(execution, doNotDecodeMessage) {
|
|
59
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
var _a;
|
|
60
62
|
if (this.event.Records && this.event.Records.length > 0) {
|
|
61
63
|
//safe check for empty events?
|
|
62
64
|
//init transaction for all records
|
|
65
|
+
if (!((_a = this.config) === null || _a === void 0 ? void 0 : _a.skipCleanTmp))
|
|
66
|
+
yield Utils.cleanTemporaryFolder();
|
|
63
67
|
return yield new Transaction(this.event, this.context, Object.assign(Object.assign({}, this.config), { syncReturn: true })).execute((transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
64
68
|
//Map records with decoded message when required
|
|
65
69
|
const decodedRecords = this.event.Records.map(eventRecord => doNotDecodeMessage ? eventRecord.body : JSON.parse(eventRecord.body));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventProcessor.js","sourceRoot":"","sources":["../../../src/BaseEvent/EventProcessor.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,WAAkC,MAAM,kBAAkB,CAAA;AACjE,OAAO,QAA+B,MAAM,oBAAoB,CAAA;AAChE,OAAO,OAAO,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"EventProcessor.js","sourceRoot":"","sources":["../../../src/BaseEvent/EventProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,14 @@ export type TransactionExecution<TransactionType, ResponseInnerType, MiscRespTyp
|
|
|
15
15
|
* @typedef {Object} TransactionConfig
|
|
16
16
|
* @property {boolean} [throwOnErrors] - Whether to throw an error if there are any errors during the transaction.
|
|
17
17
|
* @property {boolean} [syncReturn] - Whether to return the result of the transaction synchronously.
|
|
18
|
+
* @property {boolean} [skipCleanTmp] - Whether to skip cleaning the temporary folder, in EventProcessor.
|
|
18
19
|
* @property {LoggerConfig} [logger] - The configuration options for the logger.
|
|
19
20
|
* @property {PublisherConfig} [publisher] - The configuration options for the publisher.
|
|
20
21
|
*/
|
|
21
22
|
export type TransactionConfig = {
|
|
22
23
|
throwOnErrors?: boolean;
|
|
23
24
|
syncReturn?: boolean;
|
|
25
|
+
skipCleanTmp?: boolean;
|
|
24
26
|
logger?: LoggerConfig;
|
|
25
27
|
publisher?: PublisherConfig;
|
|
26
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/BaseEvent/Transaction.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,OAAO,MAAM,mBAAmB,CAAA;AACvC,OAAO,QAA+B,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAQhE,OAAO,OAAO,MAAM,eAAe,CAAA;AACnC,OAAO,MAAwB,MAAM,qBAAqB,CAAA;AAC1D,OAAO,SAA8B,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/BaseEvent/Transaction.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Util/Utils.d.ts
CHANGED
|
@@ -39,4 +39,8 @@ export default class Utils {
|
|
|
39
39
|
* @returns {any | null} The value associated with the key, or null if the key is not found.
|
|
40
40
|
*/
|
|
41
41
|
static caseInsensitiveObjectForKey(obj: any, key: string): any | null;
|
|
42
|
+
/**
|
|
43
|
+
* Cleans out the /tmp directory asynchronously.
|
|
44
|
+
*/
|
|
45
|
+
static cleanTemporaryFolder(): Promise<void>;
|
|
42
46
|
}
|
package/dist/src/Util/Utils.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import child_process from 'child_process';
|
|
1
11
|
/**
|
|
2
12
|
* Utility class containing various static methods for common operations.
|
|
3
13
|
*/
|
|
@@ -73,5 +83,24 @@ export default class Utils {
|
|
|
73
83
|
return obj[insensitiveKey];
|
|
74
84
|
return null;
|
|
75
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Cleans out the /tmp directory asynchronously.
|
|
88
|
+
*/
|
|
89
|
+
static cleanTemporaryFolder() {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
return new Promise(resolve => {
|
|
92
|
+
try {
|
|
93
|
+
child_process.execSync('rm -rf /tmp/*');
|
|
94
|
+
console.log('Cleaned tmp folder');
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
console.error('Error while cleaning tmp folder', err);
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
resolve();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}
|
|
76
105
|
}
|
|
77
106
|
//# sourceMappingURL=Utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/Util/Utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB;;;OAGG;IACI,MAAM,CAAC,qBAAqB;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,MAAc;QACxC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,GAAY;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,sBAAsB,CAAC,MAA0B;QAC7D,IAAI,CAAC,GAAG,IAAI,CAAA;QACZ,IAAI,CAAC;YACH,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAA;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW;QACb,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,MAAc;QACxC,IAAI,SAAS,GAAG,GAAG,CAAA;QACnB,IAAI,CAAC;YACH,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,2BAA2B,CAAC,GAAQ,EAAE,GAAW;QAC7D,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;QACxF,IAAI,cAAc,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/Util/Utils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,aAAa,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB;;;OAGG;IACI,MAAM,CAAC,qBAAqB;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,MAAc;QACxC,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,GAAY;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,sBAAsB,CAAC,MAA0B;QAC7D,IAAI,CAAC,GAAG,IAAI,CAAA;QACZ,IAAI,CAAC;YACH,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAA;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW;QACb,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,MAAc;QACxC,IAAI,SAAS,GAAG,GAAG,CAAA;QACnB,IAAI,CAAC;YACH,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,2BAA2B,CAAC,GAAQ,EAAE,GAAW;QAC7D,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;QACxF,IAAI,cAAc,IAAI,cAAc,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACI,MAAM,CAAO,oBAAoB;;YACtC,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBACjC,IAAI,CAAC;oBACH,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;oBACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;gBACnC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;gBACvD,CAAC;wBAAS,CAAC;oBACT,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;KAAA;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@creator.co/wapi",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@aws-sdk/client-dynamodb": "^3.574.0",
|
|
22
22
|
"@aws-sdk/client-kms": "^3.556.0",
|
|
23
|
-
"@aws-sdk/client-secrets-manager": "3.
|
|
24
|
-
"@aws-sdk/client-ses": "3.
|
|
25
|
-
"@aws-sdk/client-sns": "3.
|
|
26
|
-
"@aws-sdk/client-ssm": "3.
|
|
27
|
-
"@aws-sdk/credential-provider-node": "3.
|
|
23
|
+
"@aws-sdk/client-secrets-manager": "^3.576.0",
|
|
24
|
+
"@aws-sdk/client-ses": "^3.576.0",
|
|
25
|
+
"@aws-sdk/client-sns": "^3.576.0",
|
|
26
|
+
"@aws-sdk/client-ssm": "^3.576.0",
|
|
27
|
+
"@aws-sdk/credential-provider-node": "^3.576.0",
|
|
28
28
|
"@smithy/node-http-handler": "^3.0.0",
|
|
29
29
|
"@types/email-templates": "^10.0.1",
|
|
30
30
|
"@types/nodemailer": "^6.4.10",
|
|
@@ -3,6 +3,7 @@ import type { Context, SQSBatchResponse, SQSEvent } from 'aws-lambda'
|
|
|
3
3
|
import Transaction, { TransactionConfig } from './Transaction.js'
|
|
4
4
|
import Response, { ResponseErrorType } from '../API/Response.js'
|
|
5
5
|
import Globals from '../Globals.js'
|
|
6
|
+
import Utils from '../Util/Utils.js'
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Type definition for an event processor execution function.
|
|
@@ -95,6 +96,8 @@ export default class EventProcessor<ResponseInnerType> {
|
|
|
95
96
|
if (this.event.Records && this.event.Records.length > 0) {
|
|
96
97
|
//safe check for empty events?
|
|
97
98
|
//init transaction for all records
|
|
99
|
+
if (!this.config?.skipCleanTmp) await Utils.cleanTemporaryFolder()
|
|
100
|
+
|
|
98
101
|
return await new Transaction<null, any, SQSBatchResponse | null>(this.event, this.context, {
|
|
99
102
|
...this.config,
|
|
100
103
|
syncReturn: true,
|
|
@@ -28,12 +28,14 @@ export type TransactionExecution<TransactionType, ResponseInnerType, MiscRespTyp
|
|
|
28
28
|
* @typedef {Object} TransactionConfig
|
|
29
29
|
* @property {boolean} [throwOnErrors] - Whether to throw an error if there are any errors during the transaction.
|
|
30
30
|
* @property {boolean} [syncReturn] - Whether to return the result of the transaction synchronously.
|
|
31
|
+
* @property {boolean} [skipCleanTmp] - Whether to skip cleaning the temporary folder, in EventProcessor.
|
|
31
32
|
* @property {LoggerConfig} [logger] - The configuration options for the logger.
|
|
32
33
|
* @property {PublisherConfig} [publisher] - The configuration options for the publisher.
|
|
33
34
|
*/
|
|
34
35
|
export type TransactionConfig = {
|
|
35
36
|
throwOnErrors?: boolean
|
|
36
37
|
syncReturn?: boolean
|
|
38
|
+
skipCleanTmp?: boolean
|
|
37
39
|
//
|
|
38
40
|
logger?: LoggerConfig
|
|
39
41
|
publisher?: PublisherConfig
|
package/src/Util/Utils.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import child_process from 'child_process'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Utility class containing various static methods for common operations.
|
|
3
5
|
*/
|
|
@@ -73,4 +75,20 @@ export default class Utils {
|
|
|
73
75
|
if (insensitiveKey && insensitiveKey != '') return obj[insensitiveKey]
|
|
74
76
|
return null
|
|
75
77
|
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Cleans out the /tmp directory asynchronously.
|
|
81
|
+
*/
|
|
82
|
+
public static async cleanTemporaryFolder() {
|
|
83
|
+
return new Promise<void>(resolve => {
|
|
84
|
+
try {
|
|
85
|
+
child_process.execSync('rm -rf /tmp/*')
|
|
86
|
+
console.log('Cleaned tmp folder')
|
|
87
|
+
} catch (err) {
|
|
88
|
+
console.error('Error while cleaning tmp folder', err)
|
|
89
|
+
} finally {
|
|
90
|
+
resolve()
|
|
91
|
+
}
|
|
92
|
+
})
|
|
93
|
+
}
|
|
76
94
|
}
|
|
@@ -5,6 +5,10 @@ import EventProcessor from '../../src/BaseEvent/EventProcessor.js'
|
|
|
5
5
|
import Globals from '../../src/Globals.js'
|
|
6
6
|
import { emptyQueueEvent, observableContext } from '../Test.utils.js'
|
|
7
7
|
|
|
8
|
+
const skipCleanTmp = {
|
|
9
|
+
skipCleanTmp: true,
|
|
10
|
+
}
|
|
11
|
+
|
|
8
12
|
describe('EventProcessor success invocation path', () => {
|
|
9
13
|
test('Simple success', async () => {
|
|
10
14
|
const b = { name: '123' }
|
|
@@ -14,7 +18,7 @@ describe('EventProcessor success invocation path', () => {
|
|
|
14
18
|
Records: [{ body: JSON.stringify(b) }, { body: JSON.stringify(b) }],
|
|
15
19
|
}),
|
|
16
20
|
context,
|
|
17
|
-
{}
|
|
21
|
+
{ ...skipCleanTmp }
|
|
18
22
|
)
|
|
19
23
|
let count = 0
|
|
20
24
|
const handlerResp = await transaction.processEvent(async (transaction, eventRecord) => {
|
|
@@ -45,7 +49,7 @@ describe('EventProcessor success invocation path', () => {
|
|
|
45
49
|
Records: [{ body: JSON.stringify(b) }, { body: JSON.stringify(b) }],
|
|
46
50
|
}),
|
|
47
51
|
context,
|
|
48
|
-
{}
|
|
52
|
+
{ ...skipCleanTmp }
|
|
49
53
|
)
|
|
50
54
|
let count = 0
|
|
51
55
|
const handlerResp = await transaction.processEvent(async (transaction, eventRecord) => {
|
|
@@ -82,7 +86,7 @@ describe('EventProcessor failure invocation path', () => {
|
|
|
82
86
|
],
|
|
83
87
|
}),
|
|
84
88
|
context,
|
|
85
|
-
{}
|
|
89
|
+
{ ...skipCleanTmp }
|
|
86
90
|
)
|
|
87
91
|
let count = 0
|
|
88
92
|
let handlerResp: any = null,
|
|
@@ -125,7 +129,7 @@ describe('EventProcessor failure invocation path', () => {
|
|
|
125
129
|
],
|
|
126
130
|
}),
|
|
127
131
|
context,
|
|
128
|
-
{}
|
|
132
|
+
{ ...skipCleanTmp }
|
|
129
133
|
)
|
|
130
134
|
let count = 0
|
|
131
135
|
let handlerResp: any = null,
|
|
@@ -169,7 +173,7 @@ describe('EventProcessor failure invocation path', () => {
|
|
|
169
173
|
Records: [{ body: JSON.stringify(b) }, { messageId: '123', body: JSON.stringify(b) }],
|
|
170
174
|
}),
|
|
171
175
|
context,
|
|
172
|
-
{},
|
|
176
|
+
{ ...skipCleanTmp },
|
|
173
177
|
true
|
|
174
178
|
)
|
|
175
179
|
let count = 0
|
|
@@ -200,7 +204,7 @@ describe('EventProcessor failure invocation path', () => {
|
|
|
200
204
|
],
|
|
201
205
|
}),
|
|
202
206
|
context,
|
|
203
|
-
{},
|
|
207
|
+
{ ...skipCleanTmp },
|
|
204
208
|
true
|
|
205
209
|
)
|
|
206
210
|
let count = 0
|
|
@@ -85,8 +85,8 @@ describe('Database Manager', () => {
|
|
|
85
85
|
expect(kysely3).to.be.deep.equal(kyselyConfig2)
|
|
86
86
|
|
|
87
87
|
expect(dynamo1).to.equal(dynamo2).to.not.equal(dynamo3).to.not.equal(pg1)
|
|
88
|
-
console.log(dynamoConfig1)
|
|
89
|
-
console.log(dynamo1)
|
|
88
|
+
console.log(dynamoConfig1)
|
|
89
|
+
console.log(dynamo1)
|
|
90
90
|
expect(dynamoConfig1).to.be.deep.equal(dynamo1).to.be.deep.equal(dynamo2)
|
|
91
91
|
|
|
92
92
|
expect(dynamo3).to.be.deep.equal(dynamoConfig2)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import { DynamoDatabase } from './DynamoDatabase.js';
|
|
3
|
-
import { DatabaseTransaction } from '../../DatabaseTransaction.js';
|
|
4
|
-
export declare class DynamoTransaction extends DatabaseTransaction {
|
|
5
|
-
readonly writer: DynamoDBClient;
|
|
6
|
-
protected database: DynamoDatabase;
|
|
7
|
-
private constructor();
|
|
8
|
-
static newTransaction(writer: DynamoDBClient, database: DynamoDatabase): Promise<DynamoTransaction>;
|
|
9
|
-
protected doBegin: () => Promise<void>;
|
|
10
|
-
protected doCommit: () => Promise<void>;
|
|
11
|
-
protected doRollback: () => Promise<void>;
|
|
12
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { DatabaseTransaction } from '../../DatabaseTransaction.js';
|
|
11
|
-
export class DynamoTransaction extends DatabaseTransaction {
|
|
12
|
-
constructor(writer, database) {
|
|
13
|
-
super(writer, database);
|
|
14
|
-
this.doBegin = () => __awaiter(this, void 0, void 0, function* () { });
|
|
15
|
-
this.doCommit = () => {
|
|
16
|
-
return Promise.resolve();
|
|
17
|
-
};
|
|
18
|
-
this.doRollback = () => {
|
|
19
|
-
return Promise.resolve();
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
static newTransaction(writer, database) {
|
|
23
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const tx = new DynamoTransaction(writer, database);
|
|
25
|
-
yield tx.begin(); // defaults to opened
|
|
26
|
-
return DatabaseTransaction.proxyInstance(tx);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=DynamoTransaction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoTransaction.js","sourceRoot":"","sources":["../../../../../src/Database/integrations/dynamo/DynamoTransaction.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAElE,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IAGxD,YAAoB,MAAsB,EAAE,QAAwB;QAClE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAYf,YAAO,GAAG,GAAS,EAAE,gDAAE,CAAC,CAAA,CAAA;QACxB,aAAQ,GAAG,GAAG,EAAE;YACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC,CAAA;QACS,eAAU,GAAG,GAAG,EAAE;YAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC,CAAA;IAjBD,CAAC;IAEM,MAAM,CAAO,cAAc,CAChC,MAAsB,EACtB,QAAwB;;YAExB,MAAM,EAAE,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAClD,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA,CAAC,qBAAqB;YACtC,OAAO,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAQ,CAAA;QACrD,CAAC;KAAA;CASF"}
|