UNPKG

typenexus

Version:

TypeNexus is a good tool for API encapsulation and management. It provides a clean and lightweight way to package TypeORM functionality, helping you build applications faster while reducing template code redundancy and type conversion work.

53 lines (41 loc) 1.29 kB
import { BadRequestError } from './BadRequestError.js'; import { ParamMetadata } from '../metadata/ParamMetadata.js'; import { Action } from '../Action.js'; /** * Thrown when parameter is required, but was missing in a user request. */ export class ParamRequiredError extends BadRequestError { name = 'ParamRequiredError'; constructor(action: Action, param: ParamMetadata) { super(); Object.setPrototypeOf(this, ParamRequiredError.prototype); let paramName: string; switch (param.type) { case 'param': paramName = `Parameter "${param.name}" is`; break; case 'body': paramName = 'Request body is'; break; case 'body-param': paramName = `Body parameter "${param.name}" is`; break; case 'query': paramName = `Query parameter "${param.name}" is`; break; case 'header': paramName = `Header "${param.name}" is`; break; case 'session': paramName = 'Session is'; break; case 'cookie': paramName = 'Cookie is'; break; default: paramName = 'Parameter is'; } const uri = `${action.request.method} ${action.request.url}`; this.message = `${paramName} required for request on ${uri}`; } }