1 | (function webpackUniversalModuleDefinition(root, factory) {
|
2 | if(typeof exports === 'object' && typeof module === 'object')
|
3 | module.exports = factory();
|
4 | else if(typeof define === 'function' && define.amd)
|
5 | define([], factory);
|
6 | else {
|
7 | var a = factory();
|
8 | for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
9 | }
|
10 | })(global, function() {
|
11 | return (function(modules) {
|
12 |
|
13 | var installedModules = {};
|
14 |
|
15 |
|
16 | function __webpack_require__(moduleId) {
|
17 |
|
18 |
|
19 | if(installedModules[moduleId]) {
|
20 | return installedModules[moduleId].exports;
|
21 | }
|
22 |
|
23 | var module = installedModules[moduleId] = {
|
24 | i: moduleId,
|
25 | l: false,
|
26 | exports: {}
|
27 | };
|
28 |
|
29 |
|
30 | modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
31 |
|
32 |
|
33 | module.l = true;
|
34 |
|
35 |
|
36 | return module.exports;
|
37 | }
|
38 |
|
39 |
|
40 |
|
41 | __webpack_require__.m = modules;
|
42 |
|
43 |
|
44 | __webpack_require__.c = installedModules;
|
45 |
|
46 |
|
47 | __webpack_require__.d = function(exports, name, getter) {
|
48 | if(!__webpack_require__.o(exports, name)) {
|
49 | Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
50 | }
|
51 | };
|
52 |
|
53 |
|
54 | __webpack_require__.r = function(exports) {
|
55 | if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
56 | Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
57 | }
|
58 | Object.defineProperty(exports, '__esModule', { value: true });
|
59 | };
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | __webpack_require__.t = function(value, mode) {
|
67 | if(mode & 1) value = __webpack_require__(value);
|
68 | if(mode & 8) return value;
|
69 | if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
70 | var ns = Object.create(null);
|
71 | __webpack_require__.r(ns);
|
72 | Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
73 | if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
74 | return ns;
|
75 | };
|
76 |
|
77 |
|
78 | __webpack_require__.n = function(module) {
|
79 | var getter = module && module.__esModule ?
|
80 | function getDefault() { return module['default']; } :
|
81 | function getModuleExports() { return module; };
|
82 | __webpack_require__.d(getter, 'a', getter);
|
83 | return getter;
|
84 | };
|
85 |
|
86 |
|
87 | __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
88 |
|
89 |
|
90 | __webpack_require__.p = "";
|
91 |
|
92 |
|
93 |
|
94 | return __webpack_require__(__webpack_require__.s = "./src/main.ts");
|
95 | })
|
96 |
|
97 | ({
|
98 |
|
99 | "./src/Constants/ErrorTypes.ts":
|
100 |
|
101 |
|
102 |
|
103 |
|
104 | (function(module, exports, __webpack_require__) {
|
105 |
|
106 | "use strict";
|
107 |
|
108 | Object.defineProperty(exports, "__esModule", { value: true });
|
109 | var ErrorTypes;
|
110 | (function (ErrorTypes) {
|
111 | ErrorTypes["REGISTER_NO_PLUGINS_PRESENT"] = "REGISTER_NO_PLUGINS_PRESENT";
|
112 | ErrorTypes["REGISTER_PLUGIN_DOES_NOT_HAVE_HOOKS"] = "REGISTER_PLUGIN_DOES_NOT_HAVE_HOOKS";
|
113 | ErrorTypes["REGISTER_PLUGIN_HOOK_IS_INVALID"] = "REGISTER_PLUGIN_HOOK_IS_INVALID";
|
114 | })(ErrorTypes || (ErrorTypes = {}));
|
115 | exports.default = ErrorTypes;
|
116 |
|
117 |
|
118 | }),
|
119 |
|
120 | "./src/Constants/PluginLifeCycle.ts":
|
121 |
|
122 |
|
123 |
|
124 |
|
125 | (function(module, exports, __webpack_require__) {
|
126 |
|
127 | "use strict";
|
128 |
|
129 | Object.defineProperty(exports, "__esModule", { value: true });
|
130 | var PreHandlerLifeCycleHooks;
|
131 | (function (PreHandlerLifeCycleHooks) {
|
132 | PreHandlerLifeCycleHooks["ON_REQUEST"] = "onRequest";
|
133 | PreHandlerLifeCycleHooks["ON_AUTH"] = "onAuth";
|
134 | PreHandlerLifeCycleHooks["ON_PRE_HANDLER"] = "onPreHandler";
|
135 | })(PreHandlerLifeCycleHooks || (PreHandlerLifeCycleHooks = {}));
|
136 | exports.PreHandlerLifeCycleHooks = PreHandlerLifeCycleHooks;
|
137 | var PostHandlerLifeCycleHooks;
|
138 | (function (PostHandlerLifeCycleHooks) {
|
139 | PostHandlerLifeCycleHooks["ON_POST_HANDLER"] = "onPostHandler";
|
140 | PostHandlerLifeCycleHooks["ON_PRE_RESPONSE"] = "onPreResponse";
|
141 | })(PostHandlerLifeCycleHooks || (PostHandlerLifeCycleHooks = {}));
|
142 | exports.PostHandlerLifeCycleHooks = PostHandlerLifeCycleHooks;
|
143 | var PluginLifeCycleHooks;
|
144 | (function (PluginLifeCycleHooks) {
|
145 | PluginLifeCycleHooks["ON_REQUEST"] = "onRequest";
|
146 | PluginLifeCycleHooks["ON_AUTH"] = "onAuth";
|
147 | PluginLifeCycleHooks["ON_PRE_HANDLER"] = "onPreHandler";
|
148 | PluginLifeCycleHooks["ON_POST_HANDLER"] = "onPostHandler";
|
149 | PluginLifeCycleHooks["ON_PRE_RESPONSE"] = "onPreResponse";
|
150 | PluginLifeCycleHooks["ON_ERROR"] = "onError";
|
151 | })(PluginLifeCycleHooks || (PluginLifeCycleHooks = {}));
|
152 | exports.PluginLifeCycleHooks = PluginLifeCycleHooks;
|
153 |
|
154 |
|
155 | }),
|
156 |
|
157 | "./src/Constants/PluginType.ts":
|
158 |
|
159 |
|
160 |
|
161 |
|
162 | (function(module, exports, __webpack_require__) {
|
163 |
|
164 | "use strict";
|
165 |
|
166 | Object.defineProperty(exports, "__esModule", { value: true });
|
167 | var PluginType;
|
168 | (function (PluginType) {
|
169 | PluginType["ERROR"] = "PLUGIN_TYPE_ERROR";
|
170 | })(PluginType || (PluginType = {}));
|
171 | exports.default = PluginType;
|
172 |
|
173 |
|
174 | }),
|
175 |
|
176 | "./src/Helpers/executeHandler.ts":
|
177 |
|
178 |
|
179 |
|
180 |
|
181 | (function(module, exports, __webpack_require__) {
|
182 |
|
183 | "use strict";
|
184 |
|
185 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
186 | return new (P || (P = Promise))(function (resolve, reject) {
|
187 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
188 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
189 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
190 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
191 | });
|
192 | };
|
193 | var __generator = (this && this.__generator) || function (thisArg, body) {
|
194 | var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
195 | return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
196 | function verb(n) { return function (v) { return step([n, v]); }; }
|
197 | function step(op) {
|
198 | if (f) throw new TypeError("Generator is already executing.");
|
199 | while (_) try {
|
200 | 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;
|
201 | if (y = 0, t) op = [op[0] & 2, t.value];
|
202 | switch (op[0]) {
|
203 | case 0: case 1: t = op; break;
|
204 | case 4: _.label++; return { value: op[1], done: false };
|
205 | case 5: _.label++; y = op[1]; op = [0]; continue;
|
206 | case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
207 | default:
|
208 | if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
209 | if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
210 | if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
211 | if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
212 | if (t[2]) _.ops.pop();
|
213 | _.trys.pop(); continue;
|
214 | }
|
215 | op = body.call(thisArg, _);
|
216 | } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
217 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
218 | }
|
219 | };
|
220 | var _this = this;
|
221 | Object.defineProperty(exports, "__esModule", { value: true });
|
222 | var isPromise_1 = __webpack_require__( "./src/Utils/isPromise.ts");
|
223 | var executeHandler = function (lambdaHandler, wrapper, handleError) { return __awaiter(_this, void 0, void 0, function () {
|
224 | var addResponseToWrapper, createCallbackPromise, _a, handlerCallback, callbackPromise, responseReference, response, response, error_1;
|
225 | return __generator(this, function (_b) {
|
226 | switch (_b.label) {
|
227 | case 0:
|
228 | if (wrapper.error)
|
229 | return [2 ];
|
230 | addResponseToWrapper = function (response) {
|
231 | wrapper.response = response;
|
232 | };
|
233 | createCallbackPromise = function () {
|
234 | var handlerCallback;
|
235 | var handlerPromise = new Promise(function (resolve) {
|
236 | handlerCallback = function (error, response) {
|
237 | if (error) {
|
238 | throw error;
|
239 | }
|
240 | else {
|
241 | resolve(response);
|
242 | }
|
243 | };
|
244 | });
|
245 | return {
|
246 |
|
247 | handlerCallback: handlerCallback,
|
248 | handlerPromise: handlerPromise
|
249 | };
|
250 | };
|
251 | _b.label = 1;
|
252 | case 1:
|
253 | _b.trys.push([1, 7, , 9]);
|
254 | _a = createCallbackPromise(), handlerCallback = _a.handlerCallback, callbackPromise = _a.handlerPromise;
|
255 | responseReference = lambdaHandler(wrapper.event, wrapper.context, handlerCallback);
|
256 | if (!isPromise_1.default(responseReference)) return [3 , 3];
|
257 | return [4 , responseReference];
|
258 | case 2:
|
259 | response = _b.sent();
|
260 | return [2 , addResponseToWrapper(response)];
|
261 | case 3:
|
262 | if (!(responseReference === void 0)) return [3 , 5];
|
263 | return [4 , callbackPromise];
|
264 | case 4:
|
265 | response = _b.sent();
|
266 | return [2 , addResponseToWrapper(response)];
|
267 | case 5:
|
268 |
|
269 | return [2 , addResponseToWrapper(responseReference)];
|
270 | case 6: return [3 , 9];
|
271 | case 7:
|
272 | error_1 = _b.sent();
|
273 | return [4 , handleError(error_1)];
|
274 | case 8:
|
275 | _b.sent();
|
276 | return [3 , 9];
|
277 | case 9: return [2 ];
|
278 | }
|
279 | });
|
280 | }); };
|
281 | exports.default = executeHandler;
|
282 |
|
283 |
|
284 | }),
|
285 |
|
286 | "./src/Helpers/executePlugin.ts":
|
287 |
|
288 |
|
289 |
|
290 |
|
291 | (function(module, exports, __webpack_require__) {
|
292 |
|
293 | "use strict";
|
294 |
|
295 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
296 | return new (P || (P = Promise))(function (resolve, reject) {
|
297 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
298 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
299 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
300 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
301 | });
|
302 | };
|
303 | var __generator = (this && this.__generator) || function (thisArg, body) {
|
304 | var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
305 | return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
306 | function verb(n) { return function (v) { return step([n, v]); }; }
|
307 | function step(op) {
|
308 | if (f) throw new TypeError("Generator is already executing.");
|
309 | while (_) try {
|
310 | 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;
|
311 | if (y = 0, t) op = [op[0] & 2, t.value];
|
312 | switch (op[0]) {
|
313 | case 0: case 1: t = op; break;
|
314 | case 4: _.label++; return { value: op[1], done: false };
|
315 | case 5: _.label++; y = op[1]; op = [0]; continue;
|
316 | case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
317 | default:
|
318 | if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
319 | if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
320 | if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
321 | if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
322 | if (t[2]) _.ops.pop();
|
323 | _.trys.pop(); continue;
|
324 | }
|
325 | op = body.call(thisArg, _);
|
326 | } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
327 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
328 | }
|
329 | };
|
330 | var _this = this;
|
331 | Object.defineProperty(exports, "__esModule", { value: true });
|
332 | var executePlugin = function (plugin, wrapper, handleError) { return __awaiter(_this, void 0, void 0, function () {
|
333 | var err_1;
|
334 | return __generator(this, function (_a) {
|
335 | switch (_a.label) {
|
336 | case 0:
|
337 | _a.trys.push([0, 2, , 4]);
|
338 | return [4 , plugin(wrapper, handleError)];
|
339 | case 1:
|
340 | _a.sent();
|
341 | return [3 , 4];
|
342 | case 2:
|
343 | err_1 = _a.sent();
|
344 | return [4 , handleError(err_1)];
|
345 | case 3:
|
346 | _a.sent();
|
347 | return [3 , 4];
|
348 | case 4: return [2 ];
|
349 | }
|
350 | });
|
351 | }); };
|
352 | exports.default = executePlugin;
|
353 |
|
354 |
|
355 | }),
|
356 |
|
357 | "./src/Helpers/executePlugins.ts":
|
358 |
|
359 |
|
360 |
|
361 |
|
362 | (function(module, exports, __webpack_require__) {
|
363 |
|
364 | "use strict";
|
365 |
|
366 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
367 | return new (P || (P = Promise))(function (resolve, reject) {
|
368 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
369 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
370 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
371 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
372 | });
|
373 | };
|
374 | var __generator = (this && this.__generator) || function (thisArg, body) {
|
375 | var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
376 | return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
377 | function verb(n) { return function (v) { return step([n, v]); }; }
|
378 | function step(op) {
|
379 | if (f) throw new TypeError("Generator is already executing.");
|
380 | while (_) try {
|
381 | 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;
|
382 | if (y = 0, t) op = [op[0] & 2, t.value];
|
383 | switch (op[0]) {
|
384 | case 0: case 1: t = op; break;
|
385 | case 4: _.label++; return { value: op[1], done: false };
|
386 | case 5: _.label++; y = op[1]; op = [0]; continue;
|
387 | case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
388 | default:
|
389 | if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
390 | if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
391 | if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
392 | if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
393 | if (t[2]) _.ops.pop();
|
394 | _.trys.pop(); continue;
|
395 | }
|
396 | op = body.call(thisArg, _);
|
397 | } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
398 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
399 | }
|
400 | };
|
401 | var _this = this;
|
402 | Object.defineProperty(exports, "__esModule", { value: true });
|
403 | var PluginType_1 = __webpack_require__( "./src/Constants/PluginType.ts");
|
404 | var executePlugin_1 = __webpack_require__( "./src/Helpers/executePlugin.ts");
|
405 | var executePlugins = function (lifeCyclePlugins, wrapper, handleError, pluginType) { return __awaiter(_this, void 0, void 0, function () {
|
406 | var _a, _b, _i, index;
|
407 | return __generator(this, function (_c) {
|
408 | switch (_c.label) {
|
409 | case 0:
|
410 | _a = [];
|
411 | for (_b in lifeCyclePlugins)
|
412 | _a.push(_b);
|
413 | _i = 0;
|
414 | _c.label = 1;
|
415 | case 1:
|
416 | if (!(_i < _a.length)) return [3 , 4];
|
417 | index = _a[_i];
|
418 | if (pluginType !== PluginType_1.default.ERROR && wrapper.error)
|
419 | return [2 ];
|
420 | return [4 , executePlugin_1.default(lifeCyclePlugins[index], wrapper, handleError)];
|
421 | case 2:
|
422 | _c.sent();
|
423 | _c.label = 3;
|
424 | case 3:
|
425 | _i++;
|
426 | return [3 , 1];
|
427 | case 4: return [2 ];
|
428 | }
|
429 | });
|
430 | }); };
|
431 | exports.default = executePlugins;
|
432 |
|
433 |
|
434 | }),
|
435 |
|
436 | "./src/Utils/callOnce.ts":
|
437 |
|
438 |
|
439 |
|
440 |
|
441 | (function(module, exports, __webpack_require__) {
|
442 |
|
443 | "use strict";
|
444 |
|
445 | Object.defineProperty(exports, "__esModule", { value: true });
|
446 | var callOnce = function (fn) {
|
447 | var called = false;
|
448 | return function () {
|
449 | var args = [];
|
450 | for (var _i = 0; _i < arguments.length; _i++) {
|
451 | args[_i] = arguments[_i];
|
452 | }
|
453 | if (called)
|
454 | return;
|
455 | called = true;
|
456 | return fn.apply(null, args);
|
457 | };
|
458 | };
|
459 | exports.default = callOnce;
|
460 |
|
461 |
|
462 | }),
|
463 |
|
464 | "./src/Utils/createError.ts":
|
465 |
|
466 |
|
467 |
|
468 |
|
469 | (function(module, exports, __webpack_require__) {
|
470 |
|
471 | "use strict";
|
472 |
|
473 | Object.defineProperty(exports, "__esModule", { value: true });
|
474 | var createError = function (errorEvent) {
|
475 | return errorEvent;
|
476 | };
|
477 | exports.default = createError;
|
478 |
|
479 |
|
480 | }),
|
481 |
|
482 | "./src/Utils/isPromise.ts":
|
483 |
|
484 |
|
485 |
|
486 |
|
487 | (function(module, exports, __webpack_require__) {
|
488 |
|
489 | "use strict";
|
490 |
|
491 | Object.defineProperty(exports, "__esModule", { value: true });
|
492 | var OBJECT = 'object';
|
493 | var FUNCTION = 'function';
|
494 | var isPromise = function (promise) {
|
495 | return promise &&
|
496 | typeof promise === OBJECT &&
|
497 | typeof promise.then === FUNCTION &&
|
498 | typeof promise.catch === FUNCTION;
|
499 | };
|
500 | exports.default = isPromise;
|
501 |
|
502 |
|
503 | }),
|
504 |
|
505 | "./src/main.ts":
|
506 |
|
507 |
|
508 |
|
509 |
|
510 | (function(module, exports, __webpack_require__) {
|
511 |
|
512 | "use strict";
|
513 |
|
514 | Object.defineProperty(exports, "__esModule", { value: true });
|
515 | var middleware_1 = __webpack_require__( "./src/middleware.ts");
|
516 | exports.default = middleware_1.default;
|
517 |
|
518 |
|
519 | }),
|
520 |
|
521 | "./src/middleware.ts":
|
522 |
|
523 |
|
524 |
|
525 |
|
526 | (function(module, exports, __webpack_require__) {
|
527 |
|
528 | "use strict";
|
529 |
|
530 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
531 | return new (P || (P = Promise))(function (resolve, reject) {
|
532 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
533 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
534 | function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
535 | step((generator = generator.apply(thisArg, _arguments || [])).next());
|
536 | });
|
537 | };
|
538 | var __generator = (this && this.__generator) || function (thisArg, body) {
|
539 | var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
540 | return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
541 | function verb(n) { return function (v) { return step([n, v]); }; }
|
542 | function step(op) {
|
543 | if (f) throw new TypeError("Generator is already executing.");
|
544 | while (_) try {
|
545 | 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;
|
546 | if (y = 0, t) op = [op[0] & 2, t.value];
|
547 | switch (op[0]) {
|
548 | case 0: case 1: t = op; break;
|
549 | case 4: _.label++; return { value: op[1], done: false };
|
550 | case 5: _.label++; y = op[1]; op = [0]; continue;
|
551 | case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
552 | default:
|
553 | if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
554 | if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
555 | if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
556 | if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
557 | if (t[2]) _.ops.pop();
|
558 | _.trys.pop(); continue;
|
559 | }
|
560 | op = body.call(thisArg, _);
|
561 | } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
562 | if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
563 | }
|
564 | };
|
565 | Object.defineProperty(exports, "__esModule", { value: true });
|
566 | var ErrorTypes_1 = __webpack_require__( "./src/Constants/ErrorTypes.ts");
|
567 | var PluginLifeCycle_1 = __webpack_require__( "./src/Constants/PluginLifeCycle.ts");
|
568 | var PluginType_1 = __webpack_require__( "./src/Constants/PluginType.ts");
|
569 | var executeHandler_1 = __webpack_require__( "./src/Helpers/executeHandler.ts");
|
570 | var executePlugins_1 = __webpack_require__( "./src/Helpers/executePlugins.ts");
|
571 | var callOnce_1 = __webpack_require__( "./src/Utils/callOnce.ts");
|
572 | var createError_1 = __webpack_require__( "./src/Utils/createError.ts");
|
573 | var preHandlerHookList = Object['values'](PluginLifeCycle_1.PreHandlerLifeCycleHooks);
|
574 | var postHandlerHookList = Object['values'](PluginLifeCycle_1.PostHandlerLifeCycleHooks);
|
575 | var middleware = function (lambdaHandler) {
|
576 | var plugins = {
|
577 | onRequest: [],
|
578 | onAuth: [],
|
579 | onPreHandler: [],
|
580 | onPostHandler: [],
|
581 | onPreResponse: [],
|
582 | onError: []
|
583 | };
|
584 | var register = function (pluginsManifest) {
|
585 | if (!pluginsManifest || !pluginsManifest.length) {
|
586 | throw createError_1.default({
|
587 | type: ErrorTypes_1.default.REGISTER_NO_PLUGINS_PRESENT
|
588 | });
|
589 | }
|
590 | pluginsManifest.forEach(function (pluginManifest) {
|
591 | var plugin = Object.keys(pluginManifest.plugin);
|
592 | if (!plugin || !plugin.length) {
|
593 | throw createError_1.default({
|
594 | type: ErrorTypes_1.default.REGISTER_PLUGIN_DOES_NOT_HAVE_HOOKS
|
595 | });
|
596 | }
|
597 | Object.keys(pluginManifest.plugin).forEach(function (key) {
|
598 | if (Object['values'](PluginLifeCycle_1.PluginLifeCycleHooks).includes(key)) {
|
599 | var currentPlugin = pluginManifest.plugin[key];
|
600 | var pluginConfig = pluginManifest.config;
|
601 |
|
602 | var passConfigToPlugin = function (innerPlugin) { return function (config) {
|
603 | if (config === void 0) { config = {}; }
|
604 | return function (innerWrapper, handleError) { return innerPlugin(innerWrapper, config, handleError); };
|
605 | }; };
|
606 | var lifeCycleMethod = passConfigToPlugin(currentPlugin)(pluginConfig);
|
607 | plugins[key].push(lifeCycleMethod);
|
608 | }
|
609 | else {
|
610 | throw createError_1.default({
|
611 | type: ErrorTypes_1.default.REGISTER_PLUGIN_HOOK_IS_INVALID,
|
612 | details: [
|
613 | key + " is not a valid hook",
|
614 | 'see PluginLifeCycleHooks'
|
615 | ]
|
616 | });
|
617 | }
|
618 | });
|
619 | });
|
620 | return wrapper;
|
621 | };
|
622 | var wrapper = (function (lambdaEvent, lambdaContext, lambdaCallback) {
|
623 | return __awaiter(this, void 0, void 0, function () {
|
624 | var executeLambdaCallback, errorHandler, _a, _b, _i, index, _c, _d, _e, index;
|
625 | var _this = this;
|
626 | return __generator(this, function (_f) {
|
627 | switch (_f.label) {
|
628 | case 0:
|
629 | wrapper.event = lambdaEvent;
|
630 | wrapper.context = lambdaContext;
|
631 | wrapper.error = null;
|
632 | wrapper.response = null;
|
633 | executeLambdaCallback = callOnce_1.default(function () {
|
634 | return lambdaCallback(wrapper.error, wrapper.response);
|
635 | });
|
636 | errorHandler = callOnce_1.default(function (error) { return __awaiter(_this, void 0, void 0, function () {
|
637 | return __generator(this, function (_a) {
|
638 | switch (_a.label) {
|
639 | case 0:
|
640 | wrapper.error = error;
|
641 | return [4 , executePlugins_1.default(wrapper.plugins.onError, wrapper, lambdaCallback, PluginType_1.default.ERROR)];
|
642 | case 1:
|
643 | _a.sent();
|
644 | return [2 , executeLambdaCallback()];
|
645 | }
|
646 | });
|
647 | }); });
|
648 | _a = [];
|
649 | for (_b in preHandlerHookList)
|
650 | _a.push(_b);
|
651 | _i = 0;
|
652 | _f.label = 1;
|
653 | case 1:
|
654 | if (!(_i < _a.length)) return [3 , 4];
|
655 | index = _a[_i];
|
656 | return [4 , executePlugins_1.default(wrapper.plugins[preHandlerHookList[index]], wrapper, errorHandler)];
|
657 | case 2:
|
658 | _f.sent();
|
659 | _f.label = 3;
|
660 | case 3:
|
661 | _i++;
|
662 | return [3 , 1];
|
663 | case 4: return [4 , executeHandler_1.default(lambdaHandler, wrapper, errorHandler)];
|
664 | case 5:
|
665 | _f.sent();
|
666 | _c = [];
|
667 | for (_d in postHandlerHookList)
|
668 | _c.push(_d);
|
669 | _e = 0;
|
670 | _f.label = 6;
|
671 | case 6:
|
672 | if (!(_e < _c.length)) return [3 , 9];
|
673 | index = _c[_e];
|
674 | return [4 , executePlugins_1.default(wrapper.plugins[postHandlerHookList[index]], wrapper, errorHandler)];
|
675 | case 7:
|
676 | _f.sent();
|
677 | _f.label = 8;
|
678 | case 8:
|
679 | _e++;
|
680 | return [3 , 6];
|
681 | case 9: return [2 , executeLambdaCallback()];
|
682 | }
|
683 | });
|
684 | });
|
685 | });
|
686 | wrapper.plugins = plugins;
|
687 | wrapper.register = register;
|
688 | return wrapper;
|
689 | };
|
690 | exports.default = middleware;
|
691 |
|
692 |
|
693 | })
|
694 |
|
695 | });
|
696 | });
|
697 |
|
\ | No newline at end of file |