UNPKG

ts-site-starter

Version:

![npm](https://img.shields.io/npm/v/ts-site-starter.svg) ![license](https://img.shields.io/npm/l/ts-site-starter.svg) ![github-issues](https://img.shields.io/github/issues/wspecs/ts-site-starter.svg)

26 lines (25 loc) 840 B
import * as log from 'great-logs'; import {AppRequest, AppResponse} from './types'; export function handlerDecorator( target: Object, key: string, descriptor: TypedPropertyDescriptor<any>) { const originalMethod = descriptor.value; descriptor.value = (req: AppRequest, res: AppResponse) => { try { const response = originalMethod(req, res); if (response && typeof response.catch === 'function') { response.catch((error: string) => { log.error(error); req.errorFunction(res, 500, req.serverErrorMessage); }); } return response; } catch(error) { log.error(error); req.errorFunction(res, 500, req.serverErrorMessage); } return; }; return descriptor; }