@creator.co/wapi 1.2.1-beta6 → 1.2.3

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 (129) hide show
  1. package/.eslintrc.cjs +29 -22
  2. package/.github/workflows/npmpublish.yml +11 -19
  3. package/.github/workflows/prs.yml +13 -0
  4. package/index.ts +12 -10
  5. package/jest.config.ts +39 -0
  6. package/package.json +15 -4
  7. package/src/API/Request.ts +136 -44
  8. package/src/API/Response.ts +256 -46
  9. package/src/API/Utils.ts +60 -7
  10. package/src/BaseEvent/EventProcessor.ts +93 -28
  11. package/src/BaseEvent/Process.ts +69 -13
  12. package/src/BaseEvent/Transaction.ts +29 -50
  13. package/src/Config/Configuration.ts +119 -19
  14. package/src/Config/EnvironmentVar.ts +100 -21
  15. package/src/Crypto/Crypto.ts +78 -19
  16. package/src/Crypto/JWT.ts +53 -13
  17. package/src/Globals.ts +159 -27
  18. package/src/Logger/Logger.ts +204 -65
  19. package/src/Mailer/Mailer.ts +114 -31
  20. package/src/Publisher/Publisher.ts +57 -16
  21. package/src/Server/RouteResolver.ts +141 -0
  22. package/src/Server/Router.ts +84 -12
  23. package/src/Server/lib/ContainerServer.ts +53 -6
  24. package/src/Server/lib/Server.ts +82 -54
  25. package/src/Server/lib/container/GenericHandler.ts +15 -18
  26. package/src/Server/lib/container/GenericHandlerEvent.ts +78 -50
  27. package/src/Server/lib/container/HealthHandler.ts +2 -2
  28. package/src/Server/lib/container/Proxy.ts +114 -45
  29. package/src/Server/lib/container/Utils.ts +18 -27
  30. package/src/Validation/Validator.ts +23 -7
  31. package/tests/API/Request.test.ts +259 -0
  32. package/tests/API/Response.test.ts +367 -0
  33. package/tests/API/Utils.test.ts +157 -0
  34. package/tests/BaseEvent/EventProcessor.test.ts +262 -0
  35. package/tests/BaseEvent/Process.test.ts +49 -0
  36. package/tests/BaseEvent/Transaction.test.ts +222 -0
  37. package/tests/Config/Config.test.ts +193 -0
  38. package/tests/Config/EnvironmentVar.test.ts +214 -0
  39. package/tests/Crypto/Crypto.test.ts +88 -0
  40. package/tests/Crypto/JWT.test.ts +92 -0
  41. package/tests/Logger/Logger.test.ts +96 -0
  42. package/tests/Mailer/Mailer.test.ts +59 -0
  43. package/tests/Publisher/Publisher.test.ts +60 -0
  44. package/tests/Server/RouteResolver.test.ts +103 -0
  45. package/tests/Server/Router.test.ts +38 -0
  46. package/tests/Server/lib/ContainerServer.test.ts +327 -0
  47. package/tests/Server/lib/Server.test.ts +12 -0
  48. package/tests/Server/lib/container/GenericHandler.test.ts +131 -0
  49. package/tests/Server/lib/container/GenericHandlerEvent.test.ts +102 -0
  50. package/tests/Server/lib/container/HealthHandler.test.ts +30 -0
  51. package/tests/Server/lib/container/Proxy.test.ts +265 -0
  52. package/tests/Server/lib/container/Utils.test.ts +47 -0
  53. package/tests/Test.utils.ts +95 -0
  54. package/tests/Validation/Validator.test.ts +76 -0
  55. package/tests/main.test.ts +15 -0
  56. package/tsconfig.json +1 -0
  57. package/dist/index.d.ts +0 -11
  58. package/dist/index.js +0 -24
  59. package/dist/index.js.map +0 -1
  60. package/dist/package.json +0 -53
  61. package/dist/src/API/Request.d.ts +0 -21
  62. package/dist/src/API/Request.js +0 -86
  63. package/dist/src/API/Request.js.map +0 -1
  64. package/dist/src/API/Response.d.ts +0 -39
  65. package/dist/src/API/Response.js +0 -232
  66. package/dist/src/API/Response.js.map +0 -1
  67. package/dist/src/API/Utils.d.ts +0 -8
  68. package/dist/src/API/Utils.js +0 -49
  69. package/dist/src/API/Utils.js.map +0 -1
  70. package/dist/src/BaseEvent/EventProcessor.d.ts +0 -13
  71. package/dist/src/BaseEvent/EventProcessor.js +0 -151
  72. package/dist/src/BaseEvent/EventProcessor.js.map +0 -1
  73. package/dist/src/BaseEvent/Process.d.ts +0 -12
  74. package/dist/src/BaseEvent/Process.js +0 -114
  75. package/dist/src/BaseEvent/Process.js.map +0 -1
  76. package/dist/src/BaseEvent/Transaction.d.ts +0 -29
  77. package/dist/src/BaseEvent/Transaction.js +0 -248
  78. package/dist/src/BaseEvent/Transaction.js.map +0 -1
  79. package/dist/src/Config/Configuration.d.ts +0 -34
  80. package/dist/src/Config/Configuration.js +0 -93
  81. package/dist/src/Config/Configuration.js.map +0 -1
  82. package/dist/src/Config/EnvironmentVar.d.ts +0 -17
  83. package/dist/src/Config/EnvironmentVar.js +0 -152
  84. package/dist/src/Config/EnvironmentVar.js.map +0 -1
  85. package/dist/src/Crypto/Crypto.d.ts +0 -8
  86. package/dist/src/Crypto/Crypto.js +0 -84
  87. package/dist/src/Crypto/Crypto.js.map +0 -1
  88. package/dist/src/Crypto/JWT.d.ts +0 -16
  89. package/dist/src/Crypto/JWT.js +0 -49
  90. package/dist/src/Crypto/JWT.js.map +0 -1
  91. package/dist/src/Globals.d.ts +0 -21
  92. package/dist/src/Globals.js +0 -35
  93. package/dist/src/Globals.js.map +0 -1
  94. package/dist/src/Logger/Logger.d.ts +0 -34
  95. package/dist/src/Logger/Logger.js +0 -345
  96. package/dist/src/Logger/Logger.js.map +0 -1
  97. package/dist/src/Mailer/Mailer.d.ts +0 -12
  98. package/dist/src/Mailer/Mailer.js +0 -234
  99. package/dist/src/Mailer/Mailer.js.map +0 -1
  100. package/dist/src/Publisher/Publisher.d.ts +0 -10
  101. package/dist/src/Publisher/Publisher.js +0 -109
  102. package/dist/src/Publisher/Publisher.js.map +0 -1
  103. package/dist/src/Server/Router.d.ts +0 -27
  104. package/dist/src/Server/Router.js +0 -22
  105. package/dist/src/Server/Router.js.map +0 -1
  106. package/dist/src/Server/lib/ContainerServer.d.ts +0 -11
  107. package/dist/src/Server/lib/ContainerServer.js +0 -103
  108. package/dist/src/Server/lib/ContainerServer.js.map +0 -1
  109. package/dist/src/Server/lib/Server.d.ts +0 -9
  110. package/dist/src/Server/lib/Server.js +0 -141
  111. package/dist/src/Server/lib/Server.js.map +0 -1
  112. package/dist/src/Server/lib/container/GenericHandler.d.ts +0 -4
  113. package/dist/src/Server/lib/container/GenericHandler.js +0 -136
  114. package/dist/src/Server/lib/container/GenericHandler.js.map +0 -1
  115. package/dist/src/Server/lib/container/GenericHandlerEvent.d.ts +0 -14
  116. package/dist/src/Server/lib/container/GenericHandlerEvent.js +0 -164
  117. package/dist/src/Server/lib/container/GenericHandlerEvent.js.map +0 -1
  118. package/dist/src/Server/lib/container/HealthHandler.d.ts +0 -3
  119. package/dist/src/Server/lib/container/HealthHandler.js +0 -44
  120. package/dist/src/Server/lib/container/HealthHandler.js.map +0 -1
  121. package/dist/src/Server/lib/container/Proxy.d.ts +0 -15
  122. package/dist/src/Server/lib/container/Proxy.js +0 -157
  123. package/dist/src/Server/lib/container/Proxy.js.map +0 -1
  124. package/dist/src/Server/lib/container/Utils.d.ts +0 -6
  125. package/dist/src/Server/lib/container/Utils.js +0 -109
  126. package/dist/src/Server/lib/container/Utils.js.map +0 -1
  127. package/dist/src/Validation/Validator.d.ts +0 -5
  128. package/dist/src/Validation/Validator.js +0 -31
  129. package/dist/src/Validation/Validator.js.map +0 -1
@@ -1,13 +0,0 @@
1
- import type { Context, SQSBatchResponse, SQSEvent } from "aws-lambda";
2
- import Transaction, { TransactionConfig } from "./Transaction";
3
- import Response, { ResponseErrorType } from "../API/Response";
4
- export type EventProcessorExecution = (transaction: Transaction<null, ResponseErrorType, SQSBatchResponse>, recordContent: string | object) => Promise<Response | SQSBatchResponse>;
5
- export default class EventProcessor {
6
- private readonly _allowFailure;
7
- private readonly _apiConfig;
8
- private readonly _context;
9
- private readonly _event;
10
- constructor(event: SQSEvent, context: Context, config: TransactionConfig, allowFailure?: boolean);
11
- processEvent(execution: EventProcessorExecution, doNotDecodeMessage?: boolean): Promise<Response<ResponseErrorType> | null | SQSBatchResponse>;
12
- _processRawEvent(execution: EventProcessorExecution, doNotDecodeMessage: boolean): Promise<Response<ResponseErrorType> | null | SQSBatchResponse>;
13
- }
@@ -1,151 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- var Transaction_1 = require("./Transaction");
51
- var Response_1 = require("../API/Response");
52
- var Globals_1 = require("../Globals");
53
- var EventProcessor = /** @class */ (function () {
54
- function EventProcessor(event, context, config, allowFailure) {
55
- this._event = event;
56
- this._context = context;
57
- this._apiConfig = config;
58
- this._allowFailure = allowFailure;
59
- }
60
- EventProcessor.prototype.processEvent = function (execution, doNotDecodeMessage) {
61
- return __awaiter(this, void 0, void 0, function () {
62
- var resp;
63
- return __generator(this, function (_a) {
64
- switch (_a.label) {
65
- case 0: return [4 /*yield*/, this._processRawEvent(execution, !!doNotDecodeMessage)];
66
- case 1:
67
- resp = _a.sent();
68
- if (!this._allowFailure &&
69
- resp &&
70
- resp instanceof Response_1.default &&
71
- !(resp.getCode() >= 200 && resp.getCode() < 300))
72
- throw new Error(JSON.stringify(resp.getBody()));
73
- else if (resp)
74
- return [2 /*return*/, resp];
75
- return [2 /*return*/, null];
76
- }
77
- });
78
- });
79
- };
80
- EventProcessor.prototype._processRawEvent = function (execution, doNotDecodeMessage) {
81
- return __awaiter(this, void 0, void 0, function () {
82
- var _this = this;
83
- return __generator(this, function (_a) {
84
- switch (_a.label) {
85
- case 0:
86
- if (!(this._event.Records && this._event.Records.length > 0)) return [3 /*break*/, 2];
87
- return [4 /*yield*/, new Transaction_1.default(this._event, this._context, __assign(__assign({}, this._apiConfig), { syncReturn: true })).execute(function (transaction) { return __awaiter(_this, void 0, void 0, function () {
88
- var decodedRecords, failureIDs, _a, _b, _c, _i, eventRecordIdx, eventRecord, message, resp;
89
- return __generator(this, function (_d) {
90
- switch (_d.label) {
91
- case 0:
92
- decodedRecords = this._event.Records.map(function (eventRecord) {
93
- return doNotDecodeMessage
94
- ? eventRecord.body
95
- : JSON.parse(eventRecord.body);
96
- });
97
- failureIDs = [];
98
- _a = decodedRecords;
99
- _b = [];
100
- for (_c in _a)
101
- _b.push(_c);
102
- _i = 0;
103
- _d.label = 1;
104
- case 1:
105
- if (!(_i < _b.length)) return [3 /*break*/, 4];
106
- _c = _b[_i];
107
- if (!(_c in _a)) return [3 /*break*/, 3];
108
- eventRecordIdx = _c;
109
- eventRecord = decodedRecords[eventRecordIdx];
110
- message = this._event.Records[eventRecordIdx];
111
- return [4 /*yield*/, execution(transaction, eventRecord)
112
- //check for failure
113
- ];
114
- case 2:
115
- resp = _d.sent();
116
- //check for failure
117
- if (resp instanceof Response_1.default &&
118
- !(resp.getCode() >= 200 && resp.getCode() < 300)) {
119
- //response with failures or fail hard at first
120
- if (this._allowFailure)
121
- failureIDs.push(message.messageId);
122
- else
123
- return [2 /*return*/, resp];
124
- }
125
- _d.label = 3;
126
- case 3:
127
- _i++;
128
- return [3 /*break*/, 1];
129
- case 4:
130
- //not errored and loop ended - succeeded (might have failures)
131
- if (this._allowFailure)
132
- return [2 /*return*/, {
133
- batchItemFailures: failureIDs.map(function (id) { return ({ itemIdentifier: id }); }),
134
- }];
135
- return [2 /*return*/, Response_1.default.SuccessResponse(null)];
136
- }
137
- });
138
- }); })];
139
- case 1:
140
- //safe check for empty events?
141
- //init transaction for all records
142
- return [2 /*return*/, _a.sent()];
143
- case 2: return [2 /*return*/, Response_1.default.BadRequestResponse(Globals_1.default.ErrorResponseNoRecords, Globals_1.default.ErrorCode_NoRecords)]; //no event to be processed?
144
- }
145
- });
146
- });
147
- };
148
- return EventProcessor;
149
- }());
150
- exports.default = EventProcessor;
151
- //# sourceMappingURL=EventProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventProcessor.js","sourceRoot":"","sources":["../../../src/BaseEvent/EventProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { TransactionConfig } from "./Transaction";
2
- import Logger from "../Logger/Logger";
3
- import Publisher from "../Publisher/Publisher";
4
- export type ProcessConfig = Omit<TransactionConfig, "throwOnErrors" | "syncReturn">;
5
- export default class Process {
6
- private _interval;
7
- readonly logger: Logger;
8
- readonly publisher: Publisher;
9
- constructor(config: ProcessConfig, interval: number);
10
- execute(executionFunc: any): Promise<void>;
11
- _execute(executionFunc: any): Promise<boolean>;
12
- }
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var Logger_1 = require("../Logger/Logger");
40
- var Publisher_1 = require("../Publisher/Publisher");
41
- var Process = /** @class */ (function () {
42
- function Process(config, interval) {
43
- this._interval = interval;
44
- this.logger = new Logger_1.default(config.logger, "long-running-process");
45
- this.publisher = new Publisher_1.default(config.publisher);
46
- }
47
- //Main interface
48
- Process.prototype.execute = function (executionFunc) {
49
- return __awaiter(this, void 0, void 0, function () {
50
- var _this = this;
51
- return __generator(this, function (_a) {
52
- this.logger.debug("Starting main process code");
53
- //Connect DB
54
- // if (this.db) await this.db.connect();
55
- //Program loop
56
- setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
57
- return __generator(this, function (_a) {
58
- switch (_a.label) {
59
- case 0: return [4 /*yield*/, this._execute(executionFunc)];
60
- case 1:
61
- _a.sent();
62
- return [2 /*return*/];
63
- }
64
- });
65
- }); }, this._interval);
66
- return [2 /*return*/];
67
- });
68
- });
69
- };
70
- //Executions
71
- Process.prototype._execute = function (executionFunc) {
72
- return __awaiter(this, void 0, void 0, function () {
73
- var executionFailed, e_1;
74
- return __generator(this, function (_a) {
75
- switch (_a.label) {
76
- case 0:
77
- executionFailed = true //failled til we say no!
78
- ;
79
- _a.label = 1;
80
- case 1:
81
- _a.trys.push([1, 3, , 4]);
82
- //start DB transaction
83
- // if (this.db) await this.db.beginTransaction();
84
- //Execute
85
- return [4 /*yield*/, executionFunc(this)
86
- //Commit DB
87
- // if (this.db) await this.db.commit();
88
- //
89
- ];
90
- case 2:
91
- //start DB transaction
92
- // if (this.db) await this.db.beginTransaction();
93
- //Execute
94
- _a.sent();
95
- //Commit DB
96
- // if (this.db) await this.db.commit();
97
- //
98
- executionFailed = false;
99
- return [3 /*break*/, 4];
100
- case 3:
101
- e_1 = _a.sent();
102
- /*EXECUTION FAIL*/
103
- this.logger.error("Exception when executing main process code. Rolling back DB!");
104
- this.logger.exception(e_1);
105
- return [3 /*break*/, 4];
106
- case 4: return [2 /*return*/, executionFailed];
107
- }
108
- });
109
- });
110
- };
111
- return Process;
112
- }());
113
- exports.default = Process;
114
- //# sourceMappingURL=Process.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../src/BaseEvent/Process.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAAqC;AACrC,oDAA8C;AAQ9C;IAKE,iBAAY,MAAqB,EAAE,QAAgB;QACjD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,gBAAgB;IACV,yBAAO,GAAb,UAAc,aAAa;;;;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;gBAC/C,YAAY;gBACZ,wCAAwC;gBACxC,cAAc;gBACd,WAAW,CAAC;;;oCACV,qBAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAA;;gCAAlC,SAAkC,CAAA;;;;qBACnC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;;;;KACnB;IACD,YAAY;IACN,0BAAQ,GAAd,UAAe,aAAa;;;;;;wBACtB,eAAe,GAAG,IAAI,CAAC,wBAAwB;wBAAzB,CAAA;;;;wBAGxB,sBAAsB;wBACtB,iDAAiD;wBACjD,SAAS;wBACT,qBAAM,aAAa,CAAC,IAAI,CAAC;4BACzB,WAAW;4BACX,uCAAuC;4BACvC,EAAE;0BAHuB;;wBAHzB,sBAAsB;wBACtB,iDAAiD;wBACjD,SAAS;wBACT,SAAyB,CAAA;wBACzB,WAAW;wBACX,uCAAuC;wBACvC,EAAE;wBACF,eAAe,GAAG,KAAK,CAAA;;;;wBAEvB,kBAAkB;wBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8DAA8D,CAC/D,CAAA;wBACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC,CAAC,CAAA;;4BAI1B,sBAAO,eAAe,EAAA;;;;KACvB;IACH,cAAC;AAAD,CAAC,AA7CD,IA6CC"}
@@ -1,29 +0,0 @@
1
- import type { APIGatewayEvent, Context, SQSEvent } from "aws-lambda";
2
- import Request from "../API/Request";
3
- import Response, { ResponseErrorType } from "../API/Response";
4
- import Logger, { LoggerConfig } from "../Logger/Logger";
5
- import Publisher, { PublisherConfig } from "../Publisher/Publisher";
6
- export type TransactionExecution<TransactionType, ResponseInnerType, MiscRespType = null> = (transaction: TransactionType) => Promise<Response<ResponseInnerType> | Response<ResponseErrorType> | MiscRespType>;
7
- export type TransactionConfig = {
8
- throwOnErrors?: boolean;
9
- syncReturn?: boolean;
10
- logger?: LoggerConfig;
11
- publisher?: PublisherConfig;
12
- };
13
- export default class Transaction<InputType = object, ResponseInnerType = null, MiscRespType = null> {
14
- private event;
15
- private context;
16
- private response;
17
- private syncReturn;
18
- private retrowErrors;
19
- readonly logger: Logger;
20
- readonly request: Request<InputType>;
21
- readonly publisher: Publisher;
22
- responseProxy: (response: Response<ResponseInnerType>) => Promise<void>;
23
- constructor(event: APIGatewayEvent | SQSEvent, context: Context, config?: TransactionConfig);
24
- execute(executionFunc: TransactionExecution<Transaction<InputType, ResponseInnerType, MiscRespType>, ResponseInnerType, MiscRespType>): Promise<Response<ResponseInnerType | ResponseErrorType> | MiscRespType>;
25
- private iexecute;
26
- private executeDBTransactions;
27
- private executeLoggerFlush;
28
- private getErrorResponse;
29
- }
@@ -1,248 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var Request_1 = require("../API/Request");
40
- var Response_1 = require("../API/Response");
41
- var Globals_1 = require("../Globals");
42
- var Logger_1 = require("../Logger/Logger");
43
- var Publisher_1 = require("../Publisher/Publisher");
44
- var Transaction = /** @class */ (function () {
45
- //
46
- function Transaction(event, context, config) {
47
- var transactionId = context.awsRequestId
48
- ? context.awsRequestId
49
- : event.requestContext
50
- ? event.requestContext.requestId
51
- : "unknown";
52
- // transaction ctx
53
- this.event = event;
54
- this.context = context;
55
- this.response = null;
56
- // when set, this will be called with the response context right before calling the context suceed/fail - useful for writing the resp for example.
57
- this.responseProxy = null;
58
- // transaction flags
59
- this.syncReturn = !!(config === null || config === void 0 ? void 0 : config.syncReturn);
60
- this.retrowErrors = !!(config === null || config === void 0 ? void 0 : config.throwOnErrors); /* retrow internal errors */
61
- // components
62
- this.logger = new Logger_1.default(config === null || config === void 0 ? void 0 : config.logger, transactionId);
63
- this.request = new Request_1.default(this.event, this.context, this.logger);
64
- this.publisher = new Publisher_1.default(config === null || config === void 0 ? void 0 : config.publisher);
65
- }
66
- //Main interface
67
- Transaction.prototype.execute = function (executionFunc) {
68
- return __awaiter(this, void 0, void 0, function () {
69
- var _this = this;
70
- return __generator(this, function (_a) {
71
- switch (_a.label) {
72
- case 0: return [4 /*yield*/, this.executeLoggerFlush(function () { return __awaiter(_this, void 0, void 0, function () {
73
- var _this = this;
74
- return __generator(this, function (_a) {
75
- switch (_a.label) {
76
- case 0: return [4 /*yield*/, this.executeDBTransactions(function () { return __awaiter(_this, void 0, void 0, function () {
77
- return __generator(this, function (_a) {
78
- switch (_a.label) {
79
- case 0: return [4 /*yield*/, this.iexecute(executionFunc)];
80
- case 1: return [2 /*return*/, _a.sent()];
81
- }
82
- });
83
- }); })];
84
- case 1:
85
- _a.sent();
86
- return [2 /*return*/];
87
- }
88
- });
89
- }); })
90
- // return raw response if sync return is requested
91
- ];
92
- case 1:
93
- _a.sent();
94
- // return raw response if sync return is requested
95
- if (this.syncReturn)
96
- return [2 /*return*/, this.response
97
- // allow request to async succeed through lambda context
98
- ];
99
- // allow request to async succeed through lambda context
100
- return [2 /*return*/, null];
101
- }
102
- });
103
- });
104
- };
105
- //Executions
106
- Transaction.prototype.iexecute = function (executionFunc) {
107
- return __awaiter(this, void 0, void 0, function () {
108
- var executionFailed, _a, e_1;
109
- return __generator(this, function (_b) {
110
- switch (_b.label) {
111
- case 0:
112
- executionFailed = true //failed til we say no!
113
- ;
114
- _b.label = 1;
115
- case 1:
116
- _b.trys.push([1, 8, , 11]);
117
- //Execute
118
- this.logger.debug("Starting main request code");
119
- _a = this;
120
- return [4 /*yield*/, executionFunc(this)
121
- //Answer client
122
- ];
123
- case 2:
124
- _a.response = _b.sent();
125
- if (!(this.response && this.response instanceof Response_1.default)) return [3 /*break*/, 4];
126
- return [4 /*yield*/, this.response.build(this.context, this, this.syncReturn)];
127
- case 3:
128
- _b.sent();
129
- executionFailed = !!(this.response.getBody() && this.response.getBody()["rollback"]);
130
- return [3 /*break*/, 7];
131
- case 4:
132
- if (!(this.syncReturn && this.response)) return [3 /*break*/, 5];
133
- this.logger.log("Sync return with different response object");
134
- this.logger.debug(this.response);
135
- executionFailed = false;
136
- return [3 /*break*/, 7];
137
- case 5:
138
- this.response = this.getErrorResponse(Globals_1.default.ErrorResponseInvalidServerResponse, Globals_1.default.ErrorCode_APIError);
139
- return [4 /*yield*/, this.response.build(this.context, this, this.syncReturn)];
140
- case 6:
141
- _b.sent();
142
- this.logger.error("Invalid response object from main request code.");
143
- _b.label = 7;
144
- case 7: return [3 /*break*/, 11];
145
- case 8:
146
- e_1 = _b.sent();
147
- /*EXECUTION FAIL*/
148
- this.logger.error("Exception when executing main request code.");
149
- this.logger.exception(e_1);
150
- //retrow?
151
- if (this.retrowErrors)
152
- throw e_1;
153
- if (!executionFailed) return [3 /*break*/, 10];
154
- this.response = this.getErrorResponse(Globals_1.default.ErrorResponseUnhandledError, Globals_1.default.ErrorCode_APIError);
155
- return [4 /*yield*/, this.response.build(this.context, this, this.syncReturn)];
156
- case 9:
157
- _b.sent();
158
- _b.label = 10;
159
- case 10: return [3 /*break*/, 11];
160
- case 11: return [2 /*return*/, executionFailed];
161
- }
162
- });
163
- });
164
- };
165
- Transaction.prototype.executeDBTransactions = function (safeExecution) {
166
- return __awaiter(this, void 0, void 0, function () {
167
- var e_2;
168
- return __generator(this, function (_a) {
169
- switch (_a.label) {
170
- case 0:
171
- _a.trys.push([0, 2, , 3]);
172
- // //start DB
173
- // if (this.db) await this.db.connect();
174
- // //start transaction
175
- // if (this.db) await this.db.beginTransaction();
176
- // //
177
- // let executionFailed =
178
- return [4 /*yield*/, safeExecution()
179
- // //Commit if not failed, rollback if failed
180
- // if (!executionFailed) {
181
- // if (this.db) await this.db.commit();
182
- // } else {
183
- // this.logger.log("Rolling back DB transactions. Main code failed!");
184
- // if (this.db) await this.db.rollback();
185
- // }
186
- // //Cleanup DB after execution
187
- // if (this.db) await this.db.cleanup();
188
- ];
189
- case 1:
190
- // //start DB
191
- // if (this.db) await this.db.connect();
192
- // //start transaction
193
- // if (this.db) await this.db.beginTransaction();
194
- // //
195
- // let executionFailed =
196
- _a.sent();
197
- return [3 /*break*/, 3];
198
- case 2:
199
- e_2 = _a.sent();
200
- this.logger.error("Exception when executing DB transactions.");
201
- this.logger.log(e_2.stack);
202
- //retrow?
203
- if (this.retrowErrors)
204
- throw e_2;
205
- return [3 /*break*/, 3];
206
- case 3: return [2 /*return*/];
207
- }
208
- });
209
- });
210
- };
211
- Transaction.prototype.executeLoggerFlush = function (safeExecution) {
212
- return __awaiter(this, void 0, void 0, function () {
213
- var e_3;
214
- return __generator(this, function (_a) {
215
- switch (_a.label) {
216
- case 0:
217
- _a.trys.push([0, 3, 4, 5]);
218
- return [4 /*yield*/, safeExecution()];
219
- case 1:
220
- _a.sent();
221
- return [4 /*yield*/, this.logger.flushLogs()];
222
- case 2:
223
- _a.sent();
224
- return [3 /*break*/, 5];
225
- case 3:
226
- e_3 = _a.sent();
227
- this.logger.error("Exception when flushing logs.");
228
- this.logger.exception(e_3);
229
- //retrow?
230
- if (this.retrowErrors)
231
- throw e_3;
232
- return [3 /*break*/, 5];
233
- case 4:
234
- this.logger.debug("Transaction ended");
235
- return [7 /*endfinally*/];
236
- case 5: return [2 /*return*/];
237
- }
238
- });
239
- });
240
- };
241
- /* Response support */
242
- Transaction.prototype.getErrorResponse = function (error, code) {
243
- return Response_1.default.BadRequestResponseWithRollback(error, code);
244
- };
245
- return Transaction;
246
- }());
247
- exports.default = Transaction;
248
- //# sourceMappingURL=Transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/BaseEvent/Transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,0CAAoC;AACpC,4CAA6D;AAC7D,sCAAgC;AAChC,2CAAuD;AACvD,oDAAmE;AAqBnE;IAkBE,EAAE;IACF,qBACE,KAAiC,EACjC,OAAgB,EAChB,MAA0B;QAE1B,IAAM,aAAa,GAAG,OAAO,CAAC,YAAY;YACxC,CAAC,CAAC,OAAO,CAAC,YAAY;YACtB,CAAC,CAAmB,KAAM,CAAC,cAAc;gBACzC,CAAC,CAAmB,KAAM,CAAC,cAAc,CAAC,SAAS;gBACnD,CAAC,CAAC,SAAS,CAAA;QACb,kBAAkB;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,kJAAkJ;QAClJ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,oBAAoB;QACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAA,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAA,CAAA,CAAC,4BAA4B;QACxE,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,aAAa,CAAC,CAAA;QACvD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAY,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAS,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,CAAA;IACnD,CAAC;IAED,gBAAgB;IACH,6BAAO,GAApB,UACE,aAIC;;;;;4BAED,qBAAM,IAAI,CAAC,kBAAkB,CAAC;;;;4CAC5B,qBAAM,IAAI,CAAC,qBAAqB,CAAC;;;4DACxB,qBAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAA;4DAAzC,sBAAO,SAAkC,EAAA;;;6CAC1C,CAAC,EAAA;;wCAFF,SAEE,CAAA;;;;6BACH,CAAC;wBACF,kDAAkD;sBADhD;;wBAJF,SAIE,CAAA;wBACF,kDAAkD;wBAClD,IAAI,IAAI,CAAC,UAAU;4BAAE,sBAAO,IAAI,CAAC,QAAQ;gCACzC,wDAAwD;8BADf;wBACzC,wDAAwD;wBACxD,sBAAO,IAAI,EAAA;;;;KACZ;IACD,YAAY;IACE,8BAAQ,GAAtB,UACE,aAIC;;;;;;wBAEG,eAAe,GAAG,IAAI,CAAC,uBAAuB;wBAAxB,CAAA;;;;wBAGxB,SAAS;wBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;wBAC/C,KAAA,IAAI,CAAA;wBAAY,qBAAM,aAAa,CAAC,IAAI,CAAC;4BACzC,eAAe;0BAD0B;;wBAAzC,GAAK,QAAQ,GAAG,SAAyB,CAAA;6BAErC,CAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,YAAY,kBAAQ,CAAA,EAAlD,wBAAkD;wBACpD,qBAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAA;;wBAA9D,SAA8D,CAAA;wBAC9D,eAAe,GAAG,CAAC,CAAC,CAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAC/D,CAAA;;;6BACQ,CAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAA,EAAhC,wBAAgC;wBACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;wBAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAChC,eAAe,GAAG,KAAK,CAAA;;;wBAEvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACnC,iBAAO,CAAC,kCAAkC,EAC1C,iBAAO,CAAC,kBAAkB,CAC3B,CAAA;wBACD,qBAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAA;;wBAA9D,SAA8D,CAAA;wBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;;;;;wBAGtE,kBAAkB;wBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;wBAChE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC,CAAC,CAAA;wBACxB,SAAS;wBACT,IAAI,IAAI,CAAC,YAAY;4BAAE,MAAM,GAAC,CAAA;6BAE1B,eAAe,EAAf,yBAAe;wBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACnC,iBAAO,CAAC,2BAA2B,EACnC,iBAAO,CAAC,kBAAkB,CAC3B,CAAA;wBACD,qBAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAA;;wBAA9D,SAA8D,CAAA;;;6BAGlE,sBAAO,eAAe,EAAA;;;;KACvB;IACa,2CAAqB,GAAnC,UAAoC,aAAa;;;;;;;wBAE7C,aAAa;wBACb,wCAAwC;wBACxC,sBAAsB;wBACtB,iDAAiD;wBACjD,KAAK;wBACL,wBAAwB;wBACxB,qBAAM,aAAa,EAAE;4BACrB,6CAA6C;4BAC7C,0BAA0B;4BAC1B,yCAAyC;4BACzC,WAAW;4BACX,wEAAwE;4BACxE,2CAA2C;4BAC3C,IAAI;4BACJ,+BAA+B;4BAC/B,wCAAwC;0BATnB;;wBANrB,aAAa;wBACb,wCAAwC;wBACxC,sBAAsB;wBACtB,iDAAiD;wBACjD,KAAK;wBACL,wBAAwB;wBACxB,SAAqB,CAAA;;;;wBAWrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;wBAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAC,CAAC,KAAK,CAAC,CAAA;wBACxB,SAAS;wBACT,IAAI,IAAI,CAAC,YAAY;4BAAE,MAAM,GAAC,CAAA;;;;;;KAEjC;IACa,wCAAkB,GAAhC,UAAiC,aAAa;;;;;;;wBAE1C,qBAAM,aAAa,EAAE,EAAA;;wBAArB,SAAqB,CAAA;wBACrB,qBAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAA;;wBAA7B,SAA6B,CAAA;;;;wBAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;wBAClD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC,CAAC,CAAA;wBACxB,SAAS;wBACT,IAAI,IAAI,CAAC,YAAY;4BAAE,MAAM,GAAC,CAAA;;;wBAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;;;;;;KAEzC;IACD,sBAAsB;IACd,sCAAgB,GAAxB,UACE,KAAa,EACb,IAAY;QAEZ,OAAO,kBAAQ,CAAC,8BAA8B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7D,CAAC;IACH,kBAAC;AAAD,CAAC,AA5JD,IA4JC"}
@@ -1,34 +0,0 @@
1
- export type ConfigurationSchema = {
2
- [name: string]: {
3
- isLocal?: boolean;
4
- isRemote?: boolean;
5
- required?: boolean;
6
- cachingPolicy?: string;
7
- };
8
- };
9
- type ExtractRemote<Type> = {
10
- [Property in keyof Type]-?: Type[Property] extends {
11
- isRemote: true;
12
- } ? Property : null;
13
- };
14
- type ExtractLocal<Type> = {
15
- [Property in keyof Type]-?: Type[Property] extends {
16
- isLocal: true;
17
- } ? Property : null;
18
- };
19
- type OmitKeysByValueType<T, U> = {
20
- [P in keyof T]: T[P] extends U ? never : P;
21
- }[keyof T];
22
- type OmitByValueType<T, V> = T extends infer _ ? {
23
- [key in OmitKeysByValueType<T, V>]: T[key];
24
- } : never;
25
- export default class Configuration<T extends ConfigurationSchema> {
26
- private readonly schema;
27
- private readonly remotePrefix;
28
- constructor(schema: T, remotePrefix: string);
29
- get(propName: keyof OmitByValueType<ExtractLocal<T>, null>): any;
30
- asyncGet(propName: keyof OmitByValueType<ExtractRemote<T>, null>): Promise<any>;
31
- private getCachedValue;
32
- private cacheValue;
33
- }
34
- export {};