@saboosanket/code-generator
Version:
This npm package is a versatile setup tool tailored for Node.js projects, enabling users to generate customized project structures and functionalities. It supports integration with Google Cloud Platform (GCP), RabbitMQ, Redis, a Prisma query generator, an
59 lines (49 loc) • 1.54 kB
JavaScript
import { createModuleAndFile } from '../utils/write_files.js'
const customErrors = `
// Base function for creating custom exceptions
function createException(status_code = 500, message = '', data = {}) {
const error = new Error(message)
error.name = 'BaseException'
error.status_code = status_code
error.data = data || {}
return error
}
function NotFoundError(message, status_code = 404, data = {}) {
const error = createException(status_code, message, data)
error.name = 'NotFoundError'
return error
}
function UnexpectedError(message, status_code = 500, data = {}) {
const error = createException(status_code, message, data)
error.name = 'UnexpectedError'
return error
}
function JoiValidationError(message, status_code = 400, data = {}) {
const error = createException(status_code, message, data)
error.name = 'JoiValidationError'
return error
}
function HTTPError(message, status_code = 500, data = {}) {
const error = createException(status_code, message, data)
error.name = 'HTTPError'
console.log(error)
return error
}
const ERROR_TYPE_SET = new Set(['HTTPError', 'UnexpectedError','NotFoundError', 'JoiValidationError'])
export {
NotFoundError,
UnexpectedError,
HTTPError,
JoiValidationError,
ERROR_TYPE_SET
}
`
async function createHttpFile() {
const folderName = 'services'
const fileName = '/custom_error.js'
await createModuleAndFile(folderName, fileName, customErrors)
}
export {
createHttpFile,
customErrors
}