@comicrelief/lambda-wrapper 1.10.1 → 2.0.0-beta.2
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/README.md +172 -47
- package/dist/core/DependencyAwareClass.d.ts +15 -0
- package/dist/core/DependencyAwareClass.d.ts.map +1 -0
- package/dist/core/DependencyAwareClass.js +20 -0
- package/dist/core/DependencyAwareClass.js.map +1 -0
- package/dist/core/DependencyInjection.d.ts +62 -0
- package/dist/core/DependencyInjection.d.ts.map +1 -0
- package/dist/core/DependencyInjection.js +83 -0
- package/dist/core/DependencyInjection.js.map +1 -0
- package/dist/core/LambdaWrapper.d.ts +61 -0
- package/dist/core/LambdaWrapper.d.ts.map +1 -0
- package/dist/core/LambdaWrapper.js +126 -0
- package/dist/core/LambdaWrapper.js.map +1 -0
- package/dist/core/config.d.ts +20 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +21 -0
- package/dist/core/config.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -162
- package/dist/index.js.map +1 -0
- package/dist/models/ResponseModel.d.ts +91 -0
- package/dist/models/ResponseModel.d.ts.map +1 -0
- package/dist/models/ResponseModel.js +100 -0
- package/dist/models/ResponseModel.js.map +1 -0
- package/dist/models/SQSMessageModel.d.ts +46 -0
- package/dist/models/SQSMessageModel.d.ts.map +1 -0
- package/dist/models/SQSMessageModel.js +65 -0
- package/dist/models/SQSMessageModel.js.map +1 -0
- package/dist/models/StatusModel.d.ts +40 -0
- package/dist/models/StatusModel.d.ts.map +1 -0
- package/dist/models/StatusModel.js +50 -0
- package/dist/models/StatusModel.js.map +1 -0
- package/dist/services/BaseConfigService.d.ts +101 -0
- package/dist/services/BaseConfigService.d.ts.map +1 -0
- package/dist/services/BaseConfigService.js +180 -0
- package/dist/services/BaseConfigService.js.map +1 -0
- package/dist/services/HTTPService.d.ts +29 -0
- package/dist/services/HTTPService.d.ts.map +1 -0
- package/dist/services/HTTPService.js +55 -0
- package/dist/services/HTTPService.js.map +1 -0
- package/dist/services/LoggerService.d.ts +102 -0
- package/dist/services/LoggerService.d.ts.map +1 -0
- package/dist/services/LoggerService.js +258 -0
- package/dist/services/LoggerService.js.map +1 -0
- package/dist/services/RequestService.d.ts +119 -0
- package/dist/services/RequestService.d.ts.map +1 -0
- package/dist/services/RequestService.js +293 -0
- package/dist/services/RequestService.js.map +1 -0
- package/dist/services/SQSService.d.ts +181 -0
- package/dist/services/SQSService.d.ts.map +1 -0
- package/dist/services/SQSService.js +366 -0
- package/dist/services/SQSService.js.map +1 -0
- package/dist/services/TimerService.d.ts +22 -0
- package/dist/services/TimerService.d.ts.map +1 -0
- package/dist/services/TimerService.js +40 -0
- package/dist/services/TimerService.js.map +1 -0
- package/dist/utils/LambdaTermination.d.ts +14 -0
- package/dist/utils/LambdaTermination.d.ts.map +1 -0
- package/dist/utils/LambdaTermination.js +23 -0
- package/dist/utils/LambdaTermination.js.map +1 -0
- package/dist/utils/PromisifiedDelay.d.ts +17 -0
- package/dist/utils/PromisifiedDelay.d.ts.map +1 -0
- package/dist/utils/PromisifiedDelay.js +48 -0
- package/dist/utils/PromisifiedDelay.js.map +1 -0
- package/package.json +29 -19
- package/.eslintrc.yml +0 -16
- package/.github/dependabot.yml +0 -11
- package/.github/workflows/main.yml +0 -74
- package/babel.config.js +0 -13
- package/dist/Config/Dependencies.js +0 -40
- package/dist/DependencyInjection/DependencyAware.class.js +0 -47
- package/dist/DependencyInjection/DependencyInjection.class.js +0 -131
- package/dist/Model/CloudEvent.model.js +0 -156
- package/dist/Model/Model.model.js +0 -45
- package/dist/Model/Response.model.js +0 -150
- package/dist/Model/SQS/MarketingPreference.constraints.json +0 -28
- package/dist/Model/SQS/MarketingPreference.model.js +0 -641
- package/dist/Model/SQS/Message.model.js +0 -104
- package/dist/Model/Status.model.js +0 -82
- package/dist/Service/BaseConfig.service.js +0 -225
- package/dist/Service/HTTP.service.js +0 -70
- package/dist/Service/Logger.service.js +0 -293
- package/dist/Service/Request.service.js +0 -341
- package/dist/Service/SQS.service.js +0 -420
- package/dist/Service/Timer.service.js +0 -55
- package/dist/Wrapper/LambdaTermination.js +0 -39
- package/dist/Wrapper/LambdaWrapper.js +0 -164
- package/dist/Wrapper/PromisifiedDelay.js +0 -59
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* An error that triggers a Lambda termination.
|
|
5
|
+
*
|
|
6
|
+
* Offers developer details (that are logged), a code for the Lambda and a
|
|
7
|
+
* front-facing consumer message.
|
|
8
|
+
*/
|
|
9
|
+
class LambdaTermination extends Error {
|
|
10
|
+
constructor(internal, code = 500, body = null, details = 'unknown error') {
|
|
11
|
+
const stringified = typeof internal === 'string'
|
|
12
|
+
? internal
|
|
13
|
+
: JSON.stringify(internal);
|
|
14
|
+
super(stringified);
|
|
15
|
+
this.internal = internal;
|
|
16
|
+
this.code = code;
|
|
17
|
+
this.body = body;
|
|
18
|
+
this.details = details;
|
|
19
|
+
this.body = body || 'unknown error';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.default = LambdaTermination;
|
|
23
|
+
//# sourceMappingURL=LambdaTermination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LambdaTermination.js","sourceRoot":"","sources":["../../src/utils/LambdaTermination.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,MAAqB,iBAAkB,SAAQ,KAAK;IAClD,YACW,QAAyB,EACzB,OAAO,GAAG,EACV,OAA+B,IAAI,EACnC,UAAU,eAAe;QAElC,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ;YAC9C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7B,KAAK,CAAC,WAAW,CAAC,CAAC;QATV,aAAQ,GAAR,QAAQ,CAAiB;QACzB,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAA+B;QACnC,YAAO,GAAP,OAAO,CAAkB;QAQlC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,eAAe,CAAC;IACtC,CAAC;CACF;AAfD,oCAeC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromisifiedDelay class
|
|
3
|
+
*/
|
|
4
|
+
export default class PromisifiedDelay {
|
|
5
|
+
readonly delays: number[];
|
|
6
|
+
/**
|
|
7
|
+
* PromisifiedDelay constructor
|
|
8
|
+
*
|
|
9
|
+
* @param highLatency
|
|
10
|
+
*/
|
|
11
|
+
constructor(highLatency?: boolean);
|
|
12
|
+
/**
|
|
13
|
+
* Create a promisified delay
|
|
14
|
+
*/
|
|
15
|
+
get(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=PromisifiedDelay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromisifiedDelay.d.ts","sourceRoot":"","sources":["../../src/utils/PromisifiedDelay.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAE/B;;;;OAIG;gBACS,WAAW,UAAO;IAY9B;;OAEG;IACH,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAOrB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const STANDARD_LATENCY_DELAYS = {
|
|
4
|
+
2000: 70,
|
|
5
|
+
3500: 15,
|
|
6
|
+
4000: 10,
|
|
7
|
+
5000: 5,
|
|
8
|
+
};
|
|
9
|
+
const HIGH_LATENCY_DELAYS = {
|
|
10
|
+
2000: 65,
|
|
11
|
+
3500: 15,
|
|
12
|
+
4000: 9,
|
|
13
|
+
5000: 5,
|
|
14
|
+
10000: 5,
|
|
15
|
+
20000: 1,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* PromisifiedDelay class
|
|
19
|
+
*/
|
|
20
|
+
class PromisifiedDelay {
|
|
21
|
+
/**
|
|
22
|
+
* PromisifiedDelay constructor
|
|
23
|
+
*
|
|
24
|
+
* @param highLatency
|
|
25
|
+
*/
|
|
26
|
+
constructor(highLatency = true) {
|
|
27
|
+
this.delays = [];
|
|
28
|
+
const delayArray = highLatency === true ? HIGH_LATENCY_DELAYS : STANDARD_LATENCY_DELAYS;
|
|
29
|
+
Object.keys(delayArray).forEach((delayDuration) => {
|
|
30
|
+
const delayIterations = delayArray[delayDuration];
|
|
31
|
+
for (let i = 0; i < delayIterations; i += 1) {
|
|
32
|
+
this.delays.push(Number.parseInt(delayDuration, 10));
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a promisified delay
|
|
38
|
+
*/
|
|
39
|
+
get() {
|
|
40
|
+
return new Promise((resolve) => {
|
|
41
|
+
setTimeout(() => {
|
|
42
|
+
resolve();
|
|
43
|
+
}, this.delays[Math.floor(Math.random() * this.delays.length)]);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.default = PromisifiedDelay;
|
|
48
|
+
//# sourceMappingURL=PromisifiedDelay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromisifiedDelay.js","sourceRoot":"","sources":["../../src/utils/PromisifiedDelay.ts"],"names":[],"mappings":";;AAAA,MAAM,uBAAuB,GAAG;IAC9B,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAM,EAAE,CAAC;IACT,KAAM,EAAE,CAAC;CACV,CAAC;AAEF;;GAEG;AACH,MAAqB,gBAAgB;IAGnC;;;;OAIG;IACH,YAAY,WAAW,GAAG,IAAI;QAPrB,WAAM,GAAa,EAAE,CAAC;QAQ7B,MAAM,UAAU,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAExF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAChD,MAAM,eAAe,GAAI,UAAkB,CAAC,aAAa,CAAC,CAAC;YAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,mCA8BC"}
|
package/package.json
CHANGED
|
@@ -1,44 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comicrelief/lambda-wrapper",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-beta.2",
|
|
4
4
|
"description": "Lambda wrapper for all Comic Relief Serverless Projects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
+
"author": "Adam Clark",
|
|
7
|
+
"license": "ISC",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/comicrelief/lambda-wrapper.git"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
6
15
|
"scripts": {
|
|
16
|
+
"prepare": "yarn clean && yarn build",
|
|
17
|
+
"build": "tsc -p tsconfig-build.json",
|
|
18
|
+
"clean": "rm -rf dist",
|
|
7
19
|
"lint": "eslint src tests",
|
|
8
|
-
"test": "jest
|
|
9
|
-
"
|
|
10
|
-
"prepublish": "yarn build"
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"coverage": "yarn test --coverage"
|
|
11
22
|
},
|
|
12
|
-
"author": "Adam Clark",
|
|
13
|
-
"license": "ISC",
|
|
14
23
|
"devDependencies": {
|
|
15
|
-
"@babel/cli": "^7.18.10",
|
|
16
|
-
"@babel/core": "^7.18.10",
|
|
17
|
-
"@babel/eslint-parser": "^7.18.9",
|
|
18
|
-
"@babel/node": "^7.18.10",
|
|
19
|
-
"@babel/plugin-syntax-flow": "^7.18.6",
|
|
20
|
-
"@babel/plugin-transform-flow-strip-types": "^7.18.9",
|
|
21
|
-
"@babel/plugin-transform-react-jsx": "^7.18.10",
|
|
22
|
-
"@babel/preset-env": "^7.18.10",
|
|
23
24
|
"@comicrelief/eslint-config": "^2.0.3",
|
|
25
|
+
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
26
|
+
"@types/async": "^3.2.15",
|
|
24
27
|
"@types/jest": "^28.1.6",
|
|
28
|
+
"@types/node": "14",
|
|
29
|
+
"@types/useragent": "^2.3.1",
|
|
30
|
+
"@types/uuid": "^8.3.4",
|
|
31
|
+
"@types/xml2js": "^0.4.11",
|
|
32
|
+
"@typescript-eslint/eslint-plugin": "^5.33.0",
|
|
33
|
+
"@typescript-eslint/parser": "^5.33.0",
|
|
25
34
|
"aws-sdk": "^2.1194.0",
|
|
26
|
-
"babel-jest": "^28.1.3",
|
|
27
35
|
"eslint": "^8.22.0",
|
|
28
|
-
"eslint-plugin-flowtype": "^8.0.3",
|
|
29
36
|
"eslint-plugin-import": "^2.25.2",
|
|
30
37
|
"eslint-plugin-jsdoc": "^39.3.2",
|
|
31
|
-
"eslint-plugin-sonarjs": "^0.13.0",
|
|
32
|
-
"eslint-plugin-unicorn": "^42.0.0",
|
|
33
38
|
"jest": "^28.1.3",
|
|
34
39
|
"nyc": "^15.1.0",
|
|
35
|
-
"semantic-release": "^19.0.3"
|
|
40
|
+
"semantic-release": "^19.0.3",
|
|
41
|
+
"ts-jest": "^28.0.8",
|
|
42
|
+
"ts-node": "^10.9.1",
|
|
43
|
+
"tsconfig-paths": "^4.1.0",
|
|
44
|
+
"typescript": "^4.7.4"
|
|
36
45
|
},
|
|
37
46
|
"peerDependencies": {
|
|
38
47
|
"aws-sdk": "^2.831.0"
|
|
39
48
|
},
|
|
40
49
|
"dependencies": {
|
|
41
50
|
"@sentry/node": "^6.0.1",
|
|
51
|
+
"@types/aws-lambda": "^8.10.102",
|
|
42
52
|
"alai": "1.0.3",
|
|
43
53
|
"async": "^3.2.4",
|
|
44
54
|
"axios": "^0.27.2",
|
package/.eslintrc.yml
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
root: true
|
|
2
|
-
|
|
3
|
-
extends:
|
|
4
|
-
- '@comicrelief/eslint-config'
|
|
5
|
-
- '@comicrelief/eslint-config/mixins/jsdoc'
|
|
6
|
-
|
|
7
|
-
parser: '@babel/eslint-parser'
|
|
8
|
-
|
|
9
|
-
ignorePatterns:
|
|
10
|
-
- node_modules
|
|
11
|
-
- dist
|
|
12
|
-
- coverage
|
|
13
|
-
- babel.config.js
|
|
14
|
-
|
|
15
|
-
rules:
|
|
16
|
-
unicorn/prefer-node-protocol: off
|
package/.github/dependabot.yml
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
name: test-and-publish
|
|
2
|
-
|
|
3
|
-
on: [push]
|
|
4
|
-
|
|
5
|
-
jobs:
|
|
6
|
-
lint:
|
|
7
|
-
name: Lint
|
|
8
|
-
runs-on: ubuntu-latest
|
|
9
|
-
|
|
10
|
-
steps:
|
|
11
|
-
- uses: actions/checkout@v2
|
|
12
|
-
|
|
13
|
-
- uses: actions/setup-node@v1
|
|
14
|
-
with:
|
|
15
|
-
node-version: 14
|
|
16
|
-
|
|
17
|
-
- name: Restore cache
|
|
18
|
-
uses: actions/cache@v2
|
|
19
|
-
with:
|
|
20
|
-
path: '**/node_modules'
|
|
21
|
-
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
|
22
|
-
|
|
23
|
-
- run: yarn install
|
|
24
|
-
|
|
25
|
-
- run: yarn lint
|
|
26
|
-
env:
|
|
27
|
-
CI: true
|
|
28
|
-
|
|
29
|
-
unit-test:
|
|
30
|
-
name: Run Unit Tests
|
|
31
|
-
runs-on: ubuntu-latest
|
|
32
|
-
|
|
33
|
-
steps:
|
|
34
|
-
- uses: actions/checkout@v2
|
|
35
|
-
|
|
36
|
-
- uses: actions/setup-node@v1
|
|
37
|
-
with:
|
|
38
|
-
node-version: 14
|
|
39
|
-
|
|
40
|
-
- name: Restore cache
|
|
41
|
-
uses: actions/cache@v2
|
|
42
|
-
with:
|
|
43
|
-
path: '**/node_modules'
|
|
44
|
-
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
|
45
|
-
|
|
46
|
-
- run: yarn install
|
|
47
|
-
|
|
48
|
-
- run: yarn test
|
|
49
|
-
env:
|
|
50
|
-
CI: true
|
|
51
|
-
|
|
52
|
-
publish:
|
|
53
|
-
name: Publish
|
|
54
|
-
runs-on: ubuntu-latest
|
|
55
|
-
needs: unit-test
|
|
56
|
-
if: github.ref == 'refs/heads/master'
|
|
57
|
-
steps:
|
|
58
|
-
- name: Checkout
|
|
59
|
-
uses: actions/checkout@v2
|
|
60
|
-
|
|
61
|
-
- name: Restore cache
|
|
62
|
-
uses: actions/cache@v2
|
|
63
|
-
with:
|
|
64
|
-
path: '**/node_modules'
|
|
65
|
-
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
|
66
|
-
|
|
67
|
-
- name: Build and publish release.
|
|
68
|
-
run: yarn install
|
|
69
|
-
|
|
70
|
-
- name: Publish via Semantic Release
|
|
71
|
-
run: yarn semantic-release
|
|
72
|
-
env:
|
|
73
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
74
|
-
NPM_TOKEN: ${{ secrets.NPM_PUBLISHING_TOKEN }}
|
package/babel.config.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = exports.DEPENDENCIES = exports.DEFINITIONS = void 0;
|
|
7
|
-
|
|
8
|
-
var _HTTP = _interopRequireDefault(require("../Service/HTTP.service"));
|
|
9
|
-
|
|
10
|
-
var _Logger = _interopRequireDefault(require("../Service/Logger.service"));
|
|
11
|
-
|
|
12
|
-
var _Request = _interopRequireDefault(require("../Service/Request.service"));
|
|
13
|
-
|
|
14
|
-
var _SQS = _interopRequireDefault(require("../Service/SQS.service"));
|
|
15
|
-
|
|
16
|
-
var _Timer = _interopRequireDefault(require("../Service/Timer.service"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
const DEFINITIONS = {
|
|
21
|
-
HTTP: 'HTTP',
|
|
22
|
-
LOGGER: 'LOGGER',
|
|
23
|
-
REQUEST: 'REQUEST',
|
|
24
|
-
SQS: 'SQS',
|
|
25
|
-
TIMER: 'TIMER'
|
|
26
|
-
};
|
|
27
|
-
exports.DEFINITIONS = DEFINITIONS;
|
|
28
|
-
const DEPENDENCIES = {
|
|
29
|
-
[DEFINITIONS.HTTP]: _HTTP.default,
|
|
30
|
-
[DEFINITIONS.LOGGER]: _Logger.default,
|
|
31
|
-
[DEFINITIONS.REQUEST]: _Request.default,
|
|
32
|
-
[DEFINITIONS.SQS]: _SQS.default,
|
|
33
|
-
[DEFINITIONS.TIMER]: _Timer.default
|
|
34
|
-
};
|
|
35
|
-
exports.DEPENDENCIES = DEPENDENCIES;
|
|
36
|
-
var _default = {
|
|
37
|
-
DEFINITIONS,
|
|
38
|
-
DEPENDENCIES
|
|
39
|
-
};
|
|
40
|
-
exports.default = _default;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _DependencyInjection = _interopRequireDefault(require("./DependencyInjection.class"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* DependencyAwareClass Class
|
|
14
|
-
*/
|
|
15
|
-
class DependencyAwareClass {
|
|
16
|
-
/**
|
|
17
|
-
* DependencyAwareClass constructor
|
|
18
|
-
*
|
|
19
|
-
* @param {DependencyInjection} di
|
|
20
|
-
*/
|
|
21
|
-
constructor(di) {
|
|
22
|
-
this.di = di;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get Dependency Injection Container
|
|
26
|
-
*
|
|
27
|
-
* @returns {DependencyInjection}
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
getContainer() {
|
|
32
|
-
return this.di;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Shortcut for `this.getContainer().definitions`
|
|
36
|
-
*
|
|
37
|
-
* @returns {object}
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
get definitions() {
|
|
42
|
-
return this.getContainer().definitions;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
exports.default = DependencyAwareClass;
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _Dependencies = require("../Config/Dependencies");
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* DependencyInjection class
|
|
12
|
-
*/
|
|
13
|
-
class DependencyInjection {
|
|
14
|
-
/**
|
|
15
|
-
* DependencyInjection constructor
|
|
16
|
-
*
|
|
17
|
-
* @param configuration
|
|
18
|
-
* @param event
|
|
19
|
-
* @param context
|
|
20
|
-
*/
|
|
21
|
-
constructor(configuration, event, context) {
|
|
22
|
-
this.event = event;
|
|
23
|
-
this.context = context;
|
|
24
|
-
this.dependencies = {};
|
|
25
|
-
this.configuration = configuration;
|
|
26
|
-
|
|
27
|
-
for (let x = 0; x <= 1; x += 1) {
|
|
28
|
-
// Iterate over lapper dependencies and add to container
|
|
29
|
-
Object.keys(_Dependencies.DEFINITIONS).forEach(dependencyKey => {
|
|
30
|
-
this.dependencies[dependencyKey] = new _Dependencies.DEPENDENCIES[dependencyKey](this);
|
|
31
|
-
}); // Iterate over child dependencies and add to container
|
|
32
|
-
|
|
33
|
-
if (typeof configuration.DEPENDENCIES !== 'undefined') {
|
|
34
|
-
Object.keys(configuration.DEPENDENCIES).forEach(dependencyKey => {
|
|
35
|
-
this.dependencies[dependencyKey] = new configuration.DEPENDENCIES[dependencyKey](this);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Get Dependency
|
|
42
|
-
*
|
|
43
|
-
* @param definition
|
|
44
|
-
* @returns {*}
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
get(definition) {
|
|
49
|
-
if (typeof this.dependencies[definition] === 'undefined') {
|
|
50
|
-
throw new TypeError(`${definition} does not exist in di container`);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return this.dependencies[definition];
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get Event
|
|
57
|
-
*
|
|
58
|
-
* @returns {*}
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
getEvent() {
|
|
63
|
-
return this.event;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get Context
|
|
67
|
-
*
|
|
68
|
-
* @returns {*}
|
|
69
|
-
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
getContext() {
|
|
73
|
-
return this.context;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get Configuration
|
|
77
|
-
*
|
|
78
|
-
* @param definition string
|
|
79
|
-
* @returns {*}
|
|
80
|
-
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
getConfiguration(definition = null) {
|
|
84
|
-
if (definition !== null && typeof this.configuration[definition] === 'undefined') {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (typeof this.configuration[definition] !== 'undefined') {
|
|
89
|
-
return this.configuration[definition];
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return this.configuration;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Check whether the function
|
|
96
|
-
* is being executed in a serverless-offline context
|
|
97
|
-
*
|
|
98
|
-
* @returns {boolean}
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
get isOffline() {
|
|
103
|
-
const context = this.getContext() || {};
|
|
104
|
-
|
|
105
|
-
if (!Object.prototype.hasOwnProperty.call(context, 'invokedFunctionArn')) {
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (context.invokedFunctionArn.includes('offline')) {
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return !!process.env.USE_SERVERLESS_OFFLINE;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Returns the definitions
|
|
117
|
-
* associated to this DependencyInjection
|
|
118
|
-
* so that services can refer to them
|
|
119
|
-
* without causing circular imports.
|
|
120
|
-
*
|
|
121
|
-
* @returns {object}
|
|
122
|
-
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
get definitions() {
|
|
126
|
-
return this.configuration.DEFINITIONS;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
exports.default = DependencyInjection;
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _uuid = require("uuid");
|
|
9
|
-
|
|
10
|
-
var _Model = _interopRequireDefault(require("./Model.model"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* CloudEventModel class
|
|
16
|
-
* Class to implement cloud events - https://github.com/cloudevents/spec/blob/master/spec.md
|
|
17
|
-
*/
|
|
18
|
-
class CloudEventModel extends _Model.default {
|
|
19
|
-
/**
|
|
20
|
-
* CloudEventModel constructor
|
|
21
|
-
*/
|
|
22
|
-
constructor() {
|
|
23
|
-
super();
|
|
24
|
-
this.cloudEventsVersion = '0.1';
|
|
25
|
-
this.eventType = '';
|
|
26
|
-
this.source = '';
|
|
27
|
-
this.eventID = (0, _uuid.v4)();
|
|
28
|
-
this.eventTime = new Date().toISOString();
|
|
29
|
-
this.extensions = {};
|
|
30
|
-
this.contentType = 'application/json';
|
|
31
|
-
this.data = {};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get Cloud Events Version
|
|
35
|
-
*
|
|
36
|
-
* @returns {number}
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
getCloudEventsVersion() {
|
|
41
|
-
return this.cloudEventsVersion;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Get event type
|
|
45
|
-
*
|
|
46
|
-
* @returns {string|*}
|
|
47
|
-
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
getEventType() {
|
|
51
|
-
return this.eventType;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Set event type
|
|
55
|
-
*
|
|
56
|
-
* @param value string
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
setEventType(value) {
|
|
61
|
-
this.eventType = value;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Get source
|
|
65
|
-
*
|
|
66
|
-
* @returns {string|*}
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
getSource() {
|
|
71
|
-
return this.source;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Set source
|
|
75
|
-
*
|
|
76
|
-
* @param value string
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
setSource(value) {
|
|
81
|
-
this.source = value;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get event id
|
|
85
|
-
*
|
|
86
|
-
* @returns {*|string}
|
|
87
|
-
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
getEventID() {
|
|
91
|
-
return this.eventID;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Get event time
|
|
95
|
-
*
|
|
96
|
-
* @returns {*|string}
|
|
97
|
-
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
getEventTime() {
|
|
101
|
-
return this.eventTime;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Get extensions
|
|
105
|
-
*
|
|
106
|
-
* @returns {{}|*}
|
|
107
|
-
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
getExtensions() {
|
|
111
|
-
return this.extensions;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Set extensions
|
|
115
|
-
*
|
|
116
|
-
* @param value object
|
|
117
|
-
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
setExtensions(value) {
|
|
121
|
-
this.extensions = value;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Get content type
|
|
125
|
-
*
|
|
126
|
-
* @returns {string}
|
|
127
|
-
*/
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
getContentType() {
|
|
131
|
-
return this.contentType;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get data
|
|
135
|
-
*
|
|
136
|
-
* @returns {{}|*}
|
|
137
|
-
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
getData() {
|
|
141
|
-
return this.data;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Set data
|
|
145
|
-
*
|
|
146
|
-
* @param value object
|
|
147
|
-
*/
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
setData(value) {
|
|
151
|
-
this.data = value;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
exports.default = CloudEventModel;
|