UNPKG

30.9 kBJavaScriptView Raw
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() {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ // The module cache
13/******/ var installedModules = {};
14/******/
15/******/ // The require function
16/******/ function __webpack_require__(moduleId) {
17/******/
18/******/ // Check if module is in cache
19/******/ if(installedModules[moduleId]) {
20/******/ return installedModules[moduleId].exports;
21/******/ }
22/******/ // Create a new module (and put it into the cache)
23/******/ var module = installedModules[moduleId] = {
24/******/ i: moduleId,
25/******/ l: false,
26/******/ exports: {}
27/******/ };
28/******/
29/******/ // Execute the module function
30/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31/******/
32/******/ // Flag the module as loaded
33/******/ module.l = true;
34/******/
35/******/ // Return the exports of the module
36/******/ return module.exports;
37/******/ }
38/******/
39/******/
40/******/ // expose the modules object (__webpack_modules__)
41/******/ __webpack_require__.m = modules;
42/******/
43/******/ // expose the module cache
44/******/ __webpack_require__.c = installedModules;
45/******/
46/******/ // define getter function for harmony exports
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/******/ // define __esModule on exports
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/******/ // create a fake namespace object
62/******/ // mode & 1: value is a module id, require it
63/******/ // mode & 2: merge all properties of value into the ns
64/******/ // mode & 4: return value when already ns object
65/******/ // mode & 8|1: behave like require
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/******/ // getDefaultExport function for compatibility with non-harmony modules
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/******/ // Object.prototype.hasOwnProperty.call
87/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88/******/
89/******/ // __webpack_public_path__
90/******/ __webpack_require__.p = "";
91/******/
92/******/
93/******/ // Load entry module and return exports
94/******/ return __webpack_require__(__webpack_require__.s = "./src/main.ts");
95/******/ })
96/************************************************************************/
97/******/ ({
98
99/***/ "./src/Constants/ErrorTypes.ts":
100/*!*************************************!*\
101 !*** ./src/Constants/ErrorTypes.ts ***!
102 \*************************************/
103/*! no static exports found */
104/***/ (function(module, exports, __webpack_require__) {
105
106"use strict";
107
108Object.defineProperty(exports, "__esModule", { value: true });
109var 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 = {}));
115exports.default = ErrorTypes;
116
117
118/***/ }),
119
120/***/ "./src/Constants/PluginLifeCycle.ts":
121/*!******************************************!*\
122 !*** ./src/Constants/PluginLifeCycle.ts ***!
123 \******************************************/
124/*! no static exports found */
125/***/ (function(module, exports, __webpack_require__) {
126
127"use strict";
128
129Object.defineProperty(exports, "__esModule", { value: true });
130var PreHandlerLifeCycleHooks;
131(function (PreHandlerLifeCycleHooks) {
132 PreHandlerLifeCycleHooks["ON_REQUEST"] = "onRequest";
133 PreHandlerLifeCycleHooks["ON_AUTH"] = "onAuth";
134 PreHandlerLifeCycleHooks["ON_PRE_HANDLER"] = "onPreHandler";
135})(PreHandlerLifeCycleHooks || (PreHandlerLifeCycleHooks = {}));
136exports.PreHandlerLifeCycleHooks = PreHandlerLifeCycleHooks;
137var PostHandlerLifeCycleHooks;
138(function (PostHandlerLifeCycleHooks) {
139 PostHandlerLifeCycleHooks["ON_POST_HANDLER"] = "onPostHandler";
140 PostHandlerLifeCycleHooks["ON_PRE_RESPONSE"] = "onPreResponse";
141})(PostHandlerLifeCycleHooks || (PostHandlerLifeCycleHooks = {}));
142exports.PostHandlerLifeCycleHooks = PostHandlerLifeCycleHooks;
143var 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 = {}));
152exports.PluginLifeCycleHooks = PluginLifeCycleHooks;
153
154
155/***/ }),
156
157/***/ "./src/Constants/PluginType.ts":
158/*!*************************************!*\
159 !*** ./src/Constants/PluginType.ts ***!
160 \*************************************/
161/*! no static exports found */
162/***/ (function(module, exports, __webpack_require__) {
163
164"use strict";
165
166Object.defineProperty(exports, "__esModule", { value: true });
167var PluginType;
168(function (PluginType) {
169 PluginType["ERROR"] = "PLUGIN_TYPE_ERROR";
170})(PluginType || (PluginType = {}));
171exports.default = PluginType;
172
173
174/***/ }),
175
176/***/ "./src/Helpers/executeHandler.ts":
177/*!***************************************!*\
178 !*** ./src/Helpers/executeHandler.ts ***!
179 \***************************************/
180/*! no static exports found */
181/***/ (function(module, exports, __webpack_require__) {
182
183"use strict";
184
185var __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};
193var __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};
220var _this = this;
221Object.defineProperty(exports, "__esModule", { value: true });
222var isPromise_1 = __webpack_require__(/*! ../Utils/isPromise */ "./src/Utils/isPromise.ts");
223var 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 /*return*/];
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 // @ts-ignore
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 /*break*/, 3];
257 return [4 /*yield*/, responseReference];
258 case 2:
259 response = _b.sent();
260 return [2 /*return*/, addResponseToWrapper(response)];
261 case 3:
262 if (!(responseReference === void 0)) return [3 /*break*/, 5];
263 return [4 /*yield*/, callbackPromise];
264 case 4:
265 response = _b.sent();
266 return [2 /*return*/, addResponseToWrapper(response)];
267 case 5:
268 // call is synchronous
269 return [2 /*return*/, addResponseToWrapper(responseReference)];
270 case 6: return [3 /*break*/, 9];
271 case 7:
272 error_1 = _b.sent();
273 return [4 /*yield*/, handleError(error_1)];
274 case 8:
275 _b.sent();
276 return [3 /*break*/, 9];
277 case 9: return [2 /*return*/];
278 }
279 });
280}); };
281exports.default = executeHandler;
282
283
284/***/ }),
285
286/***/ "./src/Helpers/executePlugin.ts":
287/*!**************************************!*\
288 !*** ./src/Helpers/executePlugin.ts ***!
289 \**************************************/
290/*! no static exports found */
291/***/ (function(module, exports, __webpack_require__) {
292
293"use strict";
294
295var __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};
303var __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};
330var _this = this;
331Object.defineProperty(exports, "__esModule", { value: true });
332var 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 /*yield*/, plugin(wrapper, handleError)];
339 case 1:
340 _a.sent();
341 return [3 /*break*/, 4];
342 case 2:
343 err_1 = _a.sent();
344 return [4 /*yield*/, handleError(err_1)];
345 case 3:
346 _a.sent();
347 return [3 /*break*/, 4];
348 case 4: return [2 /*return*/];
349 }
350 });
351}); };
352exports.default = executePlugin;
353
354
355/***/ }),
356
357/***/ "./src/Helpers/executePlugins.ts":
358/*!***************************************!*\
359 !*** ./src/Helpers/executePlugins.ts ***!
360 \***************************************/
361/*! no static exports found */
362/***/ (function(module, exports, __webpack_require__) {
363
364"use strict";
365
366var __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};
374var __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};
401var _this = this;
402Object.defineProperty(exports, "__esModule", { value: true });
403var PluginType_1 = __webpack_require__(/*! ../Constants/PluginType */ "./src/Constants/PluginType.ts");
404var executePlugin_1 = __webpack_require__(/*! ./executePlugin */ "./src/Helpers/executePlugin.ts");
405var 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 /*break*/, 4];
417 index = _a[_i];
418 if (pluginType !== PluginType_1.default.ERROR && wrapper.error)
419 return [2 /*return*/];
420 return [4 /*yield*/, 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 /*break*/, 1];
427 case 4: return [2 /*return*/];
428 }
429 });
430}); };
431exports.default = executePlugins;
432
433
434/***/ }),
435
436/***/ "./src/Utils/callOnce.ts":
437/*!*******************************!*\
438 !*** ./src/Utils/callOnce.ts ***!
439 \*******************************/
440/*! no static exports found */
441/***/ (function(module, exports, __webpack_require__) {
442
443"use strict";
444
445Object.defineProperty(exports, "__esModule", { value: true });
446var 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};
459exports.default = callOnce;
460
461
462/***/ }),
463
464/***/ "./src/Utils/createError.ts":
465/*!**********************************!*\
466 !*** ./src/Utils/createError.ts ***!
467 \**********************************/
468/*! no static exports found */
469/***/ (function(module, exports, __webpack_require__) {
470
471"use strict";
472
473Object.defineProperty(exports, "__esModule", { value: true });
474var createError = function (errorEvent) {
475 return errorEvent;
476};
477exports.default = createError;
478
479
480/***/ }),
481
482/***/ "./src/Utils/isPromise.ts":
483/*!********************************!*\
484 !*** ./src/Utils/isPromise.ts ***!
485 \********************************/
486/*! no static exports found */
487/***/ (function(module, exports, __webpack_require__) {
488
489"use strict";
490
491Object.defineProperty(exports, "__esModule", { value: true });
492var OBJECT = 'object';
493var FUNCTION = 'function';
494var isPromise = function (promise) {
495 return promise &&
496 typeof promise === OBJECT &&
497 typeof promise.then === FUNCTION &&
498 typeof promise.catch === FUNCTION;
499};
500exports.default = isPromise;
501
502
503/***/ }),
504
505/***/ "./src/main.ts":
506/*!*********************!*\
507 !*** ./src/main.ts ***!
508 \*********************/
509/*! no static exports found */
510/***/ (function(module, exports, __webpack_require__) {
511
512"use strict";
513
514Object.defineProperty(exports, "__esModule", { value: true });
515var middleware_1 = __webpack_require__(/*! ./middleware */ "./src/middleware.ts");
516exports.default = middleware_1.default;
517
518
519/***/ }),
520
521/***/ "./src/middleware.ts":
522/*!***************************!*\
523 !*** ./src/middleware.ts ***!
524 \***************************/
525/*! no static exports found */
526/***/ (function(module, exports, __webpack_require__) {
527
528"use strict";
529
530var __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};
538var __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};
565Object.defineProperty(exports, "__esModule", { value: true });
566var ErrorTypes_1 = __webpack_require__(/*! ./Constants/ErrorTypes */ "./src/Constants/ErrorTypes.ts");
567var PluginLifeCycle_1 = __webpack_require__(/*! ./Constants/PluginLifeCycle */ "./src/Constants/PluginLifeCycle.ts");
568var PluginType_1 = __webpack_require__(/*! ./Constants/PluginType */ "./src/Constants/PluginType.ts");
569var executeHandler_1 = __webpack_require__(/*! ./Helpers/executeHandler */ "./src/Helpers/executeHandler.ts");
570var executePlugins_1 = __webpack_require__(/*! ./Helpers/executePlugins */ "./src/Helpers/executePlugins.ts");
571var callOnce_1 = __webpack_require__(/*! ./Utils/callOnce */ "./src/Utils/callOnce.ts");
572var createError_1 = __webpack_require__(/*! ./Utils/createError */ "./src/Utils/createError.ts");
573var preHandlerHookList = Object['values'](PluginLifeCycle_1.PreHandlerLifeCycleHooks);
574var postHandlerHookList = Object['values'](PluginLifeCycle_1.PostHandlerLifeCycleHooks);
575var 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 // bind workaround
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 /*yield*/, executePlugins_1.default(wrapper.plugins.onError, wrapper, lambdaCallback, PluginType_1.default.ERROR)];
642 case 1:
643 _a.sent();
644 return [2 /*return*/, 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 /*break*/, 4];
655 index = _a[_i];
656 return [4 /*yield*/, 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 /*break*/, 1];
663 case 4: return [4 /*yield*/, 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 /*break*/, 9];
673 index = _c[_e];
674 return [4 /*yield*/, 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 /*break*/, 6];
681 case 9: return [2 /*return*/, executeLambdaCallback()];
682 }
683 });
684 });
685 });
686 wrapper.plugins = plugins;
687 wrapper.register = register;
688 return wrapper;
689};
690exports.default = middleware;
691
692
693/***/ })
694
695/******/ });
696});
697//# sourceMappingURL=main.js.map
\No newline at end of file