UNPKG

fastlane

Version:

Fastlane is a fast and flexible API framework for Node.js. It automatically creates Express routes from your project's file structure, making it easy to build APIs quickly and efficiently.

46 lines 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotProcessed = exports.Unauthorized = exports.StatusError = void 0; exports.appErrorHandler = appErrorHandler; exports.isKnownError = isKnownError; const zod_1 = require("zod"); function appErrorHandler(err, req, res, next) { console.log('Error', err); if (err instanceof zod_1.ZodError) { const formatted = err.format(); console.log(JSON.stringify(formatted)); res.status(400).send(err); } else if (isKnownError(err)) { res.status(err.statusCode).json({ message: err.message }); } else { res.status(500).json({ message: 'Unknown error' }); } } class StatusError extends Error { statusCode = 400; constructor(message, options = {}) { super(message); if (options.statusCode) { this.statusCode = options.statusCode; } } } exports.StatusError = StatusError; class Unauthorized extends StatusError { constructor(message = 'Unauthorized') { super(message, { statusCode: 401 }); } } exports.Unauthorized = Unauthorized; class NotProcessed extends StatusError { constructor(message = 'NotProcessed') { super(message, { statusCode: 403 }); } } exports.NotProcessed = NotProcessed; function isKnownError(err) { return !!err && typeof err === 'object' && 'statusCode' in err && typeof err.statusCode === 'number' && 'message' in err && typeof err.message === 'string'; } //# sourceMappingURL=errors.js.map