UNPKG

ts-api-core

Version:

Nodejs api framework core

68 lines 3.77 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()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseController = void 0; const base_object_1 = require("../context/base.object"); const error_1 = require("../base/error"); const mvc_error_1 = require("../mvc/validation/mvc.error"); const result_1 = require("../base/result"); /** * controller 基类 */ class BaseController extends base_object_1.BaseObject { /** 获取当前 Server 中注册的所有路由 */ getRoutes() { const svr = this.context.server; return svr ? svr.registerRoutes.getRoutes() : []; } /** 获取当前 Server 中注册的所有路由组 */ getGroupRoutes() { const svr = this.context.server; return svr ? svr.registerRoutes.getGroupRoutes().sort((a, b) => a.index - b.index) : []; } /** * 执行 Wrapper 任务 * @param promise 能返回 data 和 reqId 的 Promise * @param errCode 默认的错误代码 * @returns */ executeWrapper(promise, errCode) { var _a, _b, _c, _d, _e, _f, _g, _h; return __awaiter(this, void 0, void 0, function* () { const [err, value] = yield base_object_1.BaseObject.executeSilence(promise); if (err) { this.context.error = err; if (err instanceof error_1.ApiError) { return result_1.Result.failure((_b = (_a = err.code) !== null && _a !== void 0 ? _a : errCode) !== null && _b !== void 0 ? _b : result_1.ResultCode.NO, err.message, undefined, (_c = err.reqId) !== null && _c !== void 0 ? _c : this.context.reqId); } else if (err instanceof error_1.SysError) { return result_1.Result.failure((_e = (_d = err.code) !== null && _d !== void 0 ? _d : errCode) !== null && _e !== void 0 ? _e : result_1.ResultCode.NO, err.message, undefined, this.context.reqId, err.action ? { action: err.action } : undefined); } else if (err instanceof mvc_error_1.BaseError) { return result_1.Result.failure( // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition (_g = (_f = err.code) !== null && _f !== void 0 ? _f : errCode) !== null && _g !== void 0 ? _g : result_1.ResultCode.BASE, err.message, undefined, this.context.reqId); } else { return result_1.Result.failure(errCode !== null && errCode !== void 0 ? errCode : result_1.ResultCode.NO, err.message, undefined, this.context.reqId, { stack: err.stack }); } } else if (value) { return result_1.Result.success(value.data, undefined, (_h = value.reqId) !== null && _h !== void 0 ? _h : this.context.reqId); } else { return result_1.Result.success(undefined, undefined, this.context.reqId); } }); } } exports.BaseController = BaseController; //# sourceMappingURL=base.controller.js.map