UNPKG

@decorators/server

Version:

node decorators - decorators for express library

43 lines 4.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HandlerCreator = void 0; const utils_1 = require("../utils"); const constants_1 = require("./constants"); const errors_1 = require("./errors"); class HandlerCreator { message(message) { if (message instanceof errors_1.ApiError) { return message.toObject(); } if (message instanceof Error) { return { message: message.message }; } return message; } async params(metadata, context, args) { const params$ = metadata.map(param => param.factory ? param.factory(context) : this.getParam(param, args)); const params = await Promise.all(params$); return params.map(paramFn => (0, utils_1.toStandardType)(paramFn())); } async runHandler(handler) { try { return await handler(); } catch (error) { return error; } } status(message, status) { if (message instanceof errors_1.ApiError) { return message.status; } if (message instanceof Error) { return constants_1.HttpStatus.INTERNAL_SERVER_ERROR; } return status; } } exports.HandlerCreator = HandlerCreator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2hlbHBlcnMvaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvQ0FBMEM7QUFDMUMsMkNBQXlDO0FBRXpDLHFDQUFvQztBQUVwQyxNQUFzQixjQUFjO0lBR2xDLE9BQU8sQ0FBQyxPQUFnQjtRQUN0QixJQUFJLE9BQU8sWUFBWSxpQkFBUSxFQUFFO1lBQy9CLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxPQUFPLFlBQVksS0FBSyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBeUIsRUFBRSxPQUFnQixFQUFFLElBQWU7UUFDdkUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2pELENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzdCLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBQSxzQkFBYyxFQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFnQjtRQUMvQixJQUFJO1lBQ0YsT0FBTyxNQUFNLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFnQixFQUFFLE1BQWM7UUFDckMsSUFBSSxPQUFPLFlBQVksaUJBQVEsRUFBRTtZQUMvQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDdkI7UUFFRCxJQUFJLE9BQU8sWUFBWSxLQUFLLEVBQUU7WUFDNUIsT0FBTyxzQkFBVSxDQUFDLHFCQUFxQixDQUFDO1NBQ3pDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBNUNELHdDQTRDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhbmRsZXIsIFBhcmFtTWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB0b1N0YW5kYXJkVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEh0dHBTdGF0dXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IEFwaUVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSGFuZGxlckNyZWF0b3Ige1xuICBhYnN0cmFjdCBnZXRQYXJhbShwYXJhbTogUGFyYW1NZXRhZGF0YSwgYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx1bmtub3duPiB8IHVua25vd247XG5cbiAgbWVzc2FnZShtZXNzYWdlOiB1bmtub3duKSB7XG4gICAgaWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBBcGlFcnJvcikge1xuICAgICAgcmV0dXJuIG1lc3NhZ2UudG9PYmplY3QoKTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICByZXR1cm4geyBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2UgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIGFzeW5jIHBhcmFtcyhtZXRhZGF0YTogUGFyYW1NZXRhZGF0YVtdLCBjb250ZXh0OiBDb250ZXh0LCBhcmdzOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBwYXJhbXMkID0gbWV0YWRhdGEubWFwKHBhcmFtID0+IHBhcmFtLmZhY3RvcnlcbiAgICAgID8gcGFyYW0uZmFjdG9yeShjb250ZXh0KVxuICAgICAgOiB0aGlzLmdldFBhcmFtKHBhcmFtLCBhcmdzKSxcbiAgICApO1xuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IFByb21pc2UuYWxsKHBhcmFtcyQpO1xuXG4gICAgcmV0dXJuIHBhcmFtcy5tYXAocGFyYW1GbiA9PiB0b1N0YW5kYXJkVHlwZShwYXJhbUZuKCkpKTtcbiAgfVxuXG4gIGFzeW5jIHJ1bkhhbmRsZXIoaGFuZGxlcjogSGFuZGxlcikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgaGFuZGxlcigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgc3RhdHVzKG1lc3NhZ2U6IHVua25vd24sIHN0YXR1czogbnVtYmVyKSB7XG4gICAgaWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBBcGlFcnJvcikge1xuICAgICAgcmV0dXJuIG1lc3NhZ2Uuc3RhdHVzO1xuICAgIH1cblxuICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHJldHVybiBIdHRwU3RhdHVzLklOVEVSTkFMX1NFUlZFUl9FUlJPUjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdHVzO1xuICB9XG59XG4iXX0=