@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.
Files changed (89) hide show
  1. package/README.md +172 -47
  2. package/dist/core/DependencyAwareClass.d.ts +15 -0
  3. package/dist/core/DependencyAwareClass.d.ts.map +1 -0
  4. package/dist/core/DependencyAwareClass.js +20 -0
  5. package/dist/core/DependencyAwareClass.js.map +1 -0
  6. package/dist/core/DependencyInjection.d.ts +62 -0
  7. package/dist/core/DependencyInjection.d.ts.map +1 -0
  8. package/dist/core/DependencyInjection.js +83 -0
  9. package/dist/core/DependencyInjection.js.map +1 -0
  10. package/dist/core/LambdaWrapper.d.ts +61 -0
  11. package/dist/core/LambdaWrapper.d.ts.map +1 -0
  12. package/dist/core/LambdaWrapper.js +126 -0
  13. package/dist/core/LambdaWrapper.js.map +1 -0
  14. package/dist/core/config.d.ts +20 -0
  15. package/dist/core/config.d.ts.map +1 -0
  16. package/dist/core/config.js +21 -0
  17. package/dist/core/config.js.map +1 -0
  18. package/dist/index.d.ts +28 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +59 -162
  21. package/dist/index.js.map +1 -0
  22. package/dist/models/ResponseModel.d.ts +91 -0
  23. package/dist/models/ResponseModel.d.ts.map +1 -0
  24. package/dist/models/ResponseModel.js +100 -0
  25. package/dist/models/ResponseModel.js.map +1 -0
  26. package/dist/models/SQSMessageModel.d.ts +46 -0
  27. package/dist/models/SQSMessageModel.d.ts.map +1 -0
  28. package/dist/models/SQSMessageModel.js +65 -0
  29. package/dist/models/SQSMessageModel.js.map +1 -0
  30. package/dist/models/StatusModel.d.ts +40 -0
  31. package/dist/models/StatusModel.d.ts.map +1 -0
  32. package/dist/models/StatusModel.js +50 -0
  33. package/dist/models/StatusModel.js.map +1 -0
  34. package/dist/services/BaseConfigService.d.ts +101 -0
  35. package/dist/services/BaseConfigService.d.ts.map +1 -0
  36. package/dist/services/BaseConfigService.js +180 -0
  37. package/dist/services/BaseConfigService.js.map +1 -0
  38. package/dist/services/HTTPService.d.ts +29 -0
  39. package/dist/services/HTTPService.d.ts.map +1 -0
  40. package/dist/services/HTTPService.js +55 -0
  41. package/dist/services/HTTPService.js.map +1 -0
  42. package/dist/services/LoggerService.d.ts +102 -0
  43. package/dist/services/LoggerService.d.ts.map +1 -0
  44. package/dist/services/LoggerService.js +258 -0
  45. package/dist/services/LoggerService.js.map +1 -0
  46. package/dist/services/RequestService.d.ts +119 -0
  47. package/dist/services/RequestService.d.ts.map +1 -0
  48. package/dist/services/RequestService.js +293 -0
  49. package/dist/services/RequestService.js.map +1 -0
  50. package/dist/services/SQSService.d.ts +181 -0
  51. package/dist/services/SQSService.d.ts.map +1 -0
  52. package/dist/services/SQSService.js +366 -0
  53. package/dist/services/SQSService.js.map +1 -0
  54. package/dist/services/TimerService.d.ts +22 -0
  55. package/dist/services/TimerService.d.ts.map +1 -0
  56. package/dist/services/TimerService.js +40 -0
  57. package/dist/services/TimerService.js.map +1 -0
  58. package/dist/utils/LambdaTermination.d.ts +14 -0
  59. package/dist/utils/LambdaTermination.d.ts.map +1 -0
  60. package/dist/utils/LambdaTermination.js +23 -0
  61. package/dist/utils/LambdaTermination.js.map +1 -0
  62. package/dist/utils/PromisifiedDelay.d.ts +17 -0
  63. package/dist/utils/PromisifiedDelay.d.ts.map +1 -0
  64. package/dist/utils/PromisifiedDelay.js +48 -0
  65. package/dist/utils/PromisifiedDelay.js.map +1 -0
  66. package/package.json +29 -19
  67. package/.eslintrc.yml +0 -16
  68. package/.github/dependabot.yml +0 -11
  69. package/.github/workflows/main.yml +0 -74
  70. package/babel.config.js +0 -13
  71. package/dist/Config/Dependencies.js +0 -40
  72. package/dist/DependencyInjection/DependencyAware.class.js +0 -47
  73. package/dist/DependencyInjection/DependencyInjection.class.js +0 -131
  74. package/dist/Model/CloudEvent.model.js +0 -156
  75. package/dist/Model/Model.model.js +0 -45
  76. package/dist/Model/Response.model.js +0 -150
  77. package/dist/Model/SQS/MarketingPreference.constraints.json +0 -28
  78. package/dist/Model/SQS/MarketingPreference.model.js +0 -641
  79. package/dist/Model/SQS/Message.model.js +0 -104
  80. package/dist/Model/Status.model.js +0 -82
  81. package/dist/Service/BaseConfig.service.js +0 -225
  82. package/dist/Service/HTTP.service.js +0 -70
  83. package/dist/Service/Logger.service.js +0 -293
  84. package/dist/Service/Request.service.js +0 -341
  85. package/dist/Service/SQS.service.js +0 -420
  86. package/dist/Service/Timer.service.js +0 -55
  87. package/dist/Wrapper/LambdaTermination.js +0 -39
  88. package/dist/Wrapper/LambdaWrapper.js +0 -164
  89. 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": "1.10.1",
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 --coverage",
9
- "build": "babel src --out-dir dist --copy-files",
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
@@ -1,11 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: npm
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- open-pull-requests-limit: 10
8
- commit-message:
9
- prefix: "fix"
10
- prefix-development: "chore"
11
- include: "scope"
@@ -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,13 +0,0 @@
1
- module.exports = {
2
- presets: [
3
- [
4
- '@babel/preset-env',
5
- {
6
- targets: {
7
- node: 'current',
8
- },
9
- },
10
- ],
11
- ],
12
- plugins: ['@babel/plugin-syntax-flow', '@babel/plugin-transform-flow-strip-types'],
13
- };
@@ -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;