UNPKG

5.63 kBSource Map (JSON)View Raw
1{"version":3,"file":"APIError.js","sourceRoot":"","sources":["APIError.ts"],"names":[],"mappings":"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","sourcesContent":["import {APIConfig} from \"./APIConfig\";\nimport shortid from \"shortid\";\nimport {get, isNil} from \"lodash\";\n\nexport class APIError {\n id: string;\n friendlyMessage: any;\n rawError: Error;\n statusCode: number;\n extraData: any;\n\n constructor(friendlyMessage: any, rawError?: Error, statusCode: number = 500, extraData?: any) {\n this.id = shortid.generate();\n\n // Is this already and API friendly error?\n if (get(rawError, \"isAPIFriendly\", false)) {\n this.friendlyMessage = (<any>rawError).message;\n this.statusCode = (<any>rawError).statusCode;\n }\n else {\n this.friendlyMessage = friendlyMessage;\n this.statusCode = statusCode;\n }\n\n this.rawError = rawError;\n this.extraData = extraData;\n }\n\n static shouldReject(error: Error, rejectFunction: Function) {\n if (!isNil(error)) {\n if (rejectFunction) {\n rejectFunction(error);\n }\n return true;\n }\n\n return false;\n }\n\n static createValidationError(errors: { parameter: string, message: string }[]) {\n return new APIError(\"validation_error\", null, 400, errors);\n }\n\n static create404NotFoundError(): Error {\n return APIError.createAPIFriendlyError(\"not found\", 404);\n }\n\n static create401UnauthorizedError(): Error {\n return APIError.createAPIFriendlyError(\"unauthorized\", 401);\n }\n\n static createAPIFriendlyError(message: string, statusCode: number = 500): Error {\n let error = new Error(message);\n (<any>error).isAPIFriendly = true;\n (<any>error).statusCode = statusCode;\n return error;\n }\n\n private static _rawErrorOut(error: Error) {\n\n let errorData: any = {\n \"error\": error.toString()\n };\n\n let stack = error.stack;\n if (stack) {\n errorData.stack = stack.split('\\n').map(function (line) {\n return line.trim();\n }).slice(1);\n }\n\n return errorData\n }\n\n out(includeRawError: boolean = APIConfig.DISPLAY_RAW_ERRORS) {\n let output: any = {\n \"error\": {\n \"id\": this.id,\n \"message\": this.friendlyMessage,\n \"details\": this.extraData,\n }\n };\n\n if (includeRawError && !isNil(this.rawError)) {\n output.error.raw_error = APIError._rawErrorOut(this.rawError);\n }\n\n return output;\n }\n\n hapiOut(includeRawError: boolean = APIConfig.DISPLAY_RAW_ERRORS) {\n let output: any = {\n \"this\": \"failed\",\n \"with\": this.statusCode,\n \"because\": {\n \"message\": this.friendlyMessage,\n \"details\": this.extraData\n },\n \"id\": this.id\n };\n\n if (includeRawError && !isNil(this.rawError)) {\n output.because.raw_error = APIError._rawErrorOut(this.rawError);\n }\n\n return output;\n }\n}"]}
\No newline at end of file