UNPKG

honion

Version:
68 lines (67 loc) 2.92 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var _Honion_mds; Object.defineProperty(exports, "__esModule", { value: true }); exports.Honion = void 0; const context_1 = require("./context"); const logger_1 = require("./logger"); const middlewares_1 = require("./middlewares"); const middleware_container_1 = require("./middlewares/middleware-container"); class Honion { constructor() { _Honion_mds.set(this, []); this.logger = new logger_1.BaseLogger(); (0, middleware_container_1.initContainer)(this, __classPrivateFieldGet(this, _Honion_mds, "f")); } hook(arg1, arg2) { let mh; let type; if (typeof arg1 == "function") { mh = arg1; type = middlewares_1.HookType.BeforeInvoke; } else { type = arg1; mh = arg2; } __classPrivateFieldGet(this, _Honion_mds, "f").push(() => new middlewares_1.HookMiddleware(mh, type)); return this; } invoke(ctx) { return __awaiter(this, void 0, void 0, function* () { ctx = ctx !== null && ctx !== void 0 ? ctx : new context_1.Context(); Object.defineProperty(ctx, "honion", { configurable: true, get: () => this, }); if (!__classPrivateFieldGet(this, _Honion_mds, "f").length) { return ctx; } try { yield (0, middlewares_1.invokeMiddlewares)(ctx, __classPrivateFieldGet(this, _Honion_mds, "f")); } catch (err) { ctx.catchError(err); } return ctx; }); } setLogger(logger) { this.logger = logger; } } exports.Honion = Honion; _Honion_mds = new WeakMap();