UNPKG

pg-promise

Version:
76 lines (71 loc) 2.26 kB
/* * Copyright (c) 2015-present, Vitaly Tomilov * * See the LICENSE file at the top-level directory of this distribution * for licensing information. * * Removal or modification of this copyright notice is prohibited. */ const npm = { os: require('os'), utils: require('../utils'), minify: require('pg-minify'), inspect: require('util').inspect }; /** * @class errors.QueryFileError * @augments external:Error * @description * {@link errors.QueryFileError QueryFileError} class, available from the {@link errors} namespace. * * This type represents all errors related to {@link QueryFile}. * * @property {string} name * Standard {@link external:Error Error} property - error type name = `QueryFileError`. * * @property {string} message * Standard {@link external:Error Error} property - the error message. * * @property {string} stack * Standard {@link external:Error Error} property - the stack trace. * * @property {string} file * File path/name that was passed into the {@link QueryFile} constructor. * * @property {object} options * Set of options that was used by the {@link QueryFile} object. * * @property {SQLParsingError} error * Internal $[SQLParsingError] object. * * It is set only when the error was thrown by $[pg-minify] while parsing the SQL file. * * @see QueryFile * */ class QueryFileError extends Error { constructor(error, qf) { const isSqlError = error instanceof npm.minify.SQLParsingError; const message = isSqlError ? 'Failed to parse the SQL.' : error.message; super(message); this.name = this.constructor.name; if (isSqlError) { this.error = error; } this.file = qf.file; this.options = qf.options; Error.captureStackTrace(this, this.constructor); } } npm.utils.addInspection(QueryFileError, function () { const obj = { message: this.message, file: this.file, options: this.options }; if (this.error) { obj.error = this.error; } return 'QueryFileError ' + npm.inspect(obj, {breakLength: 100, depth: 5, colors: true}); }); module.exports = {QueryFileError};