UNPKG

feathers-sequelize

Version:
52 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isPlainObject = exports.getOrder = exports.errorHandler = exports.ERROR = void 0; const errors_1 = require("@feathersjs/errors"); exports.ERROR = Symbol('feathers-sequelize/error'); const wrap = (error, original) => Object.assign(error, { [exports.ERROR]: original }); const errorHandler = (error) => { const { name, message } = error; if (name.startsWith('Sequelize')) { switch (name) { case 'SequelizeValidationError': case 'SequelizeUniqueConstraintError': case 'SequelizeExclusionConstraintError': case 'SequelizeForeignKeyConstraintError': case 'SequelizeInvalidConnectionError': // @ts-ignore throw wrap(new errors_1.BadRequest(message, { errors: error.errors }), error); case 'SequelizeTimeoutError': case 'SequelizeConnectionTimedOutError': throw wrap(new errors_1.Timeout(message), error); case 'SequelizeConnectionRefusedError': case 'SequelizeAccessDeniedError': throw wrap(new errors_1.Forbidden(message), error); case 'SequelizeHostNotReachableError': throw wrap(new errors_1.Unavailable(message), error); case 'SequelizeHostNotFoundError': throw wrap(new errors_1.NotFound(message), error); default: throw wrap(new errors_1.GeneralError(message), error); } } throw error; }; exports.errorHandler = errorHandler; const getOrder = (sort = {}) => Object.keys(sort).reduce((order, name) => { let direction; if (Array.isArray(sort[name])) { direction = parseInt(sort[name][0], 10) === 1 ? 'ASC' : 'DESC'; direction += parseInt(sort[name][1], 10) === 1 ? ' NULLS FIRST' : ' NULLS LAST'; } else { direction = parseInt(sort[name], 10) === 1 ? 'ASC' : 'DESC'; } order.push([name, direction]); return order; }, []); exports.getOrder = getOrder; const isPlainObject = (obj) => { return obj && obj.constructor === {}.constructor; }; exports.isPlainObject = isPlainObject; //# sourceMappingURL=utils.js.map