@hokaccha/sql-formatter
Version:
Format whitespace in a SQL query to make it more readable
52 lines • 2.34 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.format = void 0;
const BigQueryFormatter_1 = __importDefault(require("./languages/BigQueryFormatter"));
const Db2Formatter_1 = __importDefault(require("./languages/Db2Formatter"));
const MariaDbFormatter_1 = __importDefault(require("./languages/MariaDbFormatter"));
const MySqlFormatter_1 = __importDefault(require("./languages/MySqlFormatter"));
const N1qlFormatter_1 = __importDefault(require("./languages/N1qlFormatter"));
const PlSqlFormatter_1 = __importDefault(require("./languages/PlSqlFormatter"));
const PostgreSqlFormatter_1 = __importDefault(require("./languages/PostgreSqlFormatter"));
const RedshiftFormatter_1 = __importDefault(require("./languages/RedshiftFormatter"));
const SparkSqlFormatter_1 = __importDefault(require("./languages/SparkSqlFormatter"));
const StandardSqlFormatter_1 = __importDefault(require("./languages/StandardSqlFormatter"));
const TSqlFormatter_1 = __importDefault(require("./languages/TSqlFormatter"));
const formatters = {
db2: Db2Formatter_1.default,
mariadb: MariaDbFormatter_1.default,
mysql: MySqlFormatter_1.default,
n1ql: N1qlFormatter_1.default,
plsql: PlSqlFormatter_1.default,
postgresql: PostgreSqlFormatter_1.default,
redshift: RedshiftFormatter_1.default,
spark: SparkSqlFormatter_1.default,
sql: StandardSqlFormatter_1.default,
tsql: TSqlFormatter_1.default,
bigquery: BigQueryFormatter_1.default,
};
const defaultConfig = {
language: "sql",
indent: " ",
keywordCase: "preserve",
linesBetweenQueries: 1,
};
/**
* Format whitespace in a query to make it easier to read.
*/
const format = (query, config = {}) => {
if (typeof query !== "string") {
throw new Error("Invalid query argument. Expected string, instead got " + typeof query);
}
const { language, ...formatterConfig } = { ...defaultConfig, ...config };
const Formatter = formatters[language];
if (Formatter === undefined) {
throw Error(`Unsupported SQL dialect: ${language}`);
}
return new Formatter(formatterConfig).format(query);
};
exports.format = format;
//# sourceMappingURL=sqlFormatter.js.map