UNPKG

1.25 kBJavaScriptView Raw
1import Db2Formatter from "./languages/Db2Formatter";
2import N1qlFormatter from "./languages/N1qlFormatter";
3import PlSqlFormatter from "./languages/PlSqlFormatter";
4import StandardSqlFormatter from "./languages/StandardSqlFormatter";
5
6export default {
7 /**
8 * Format whitespaces in a query to make it easier to read.
9 *
10 * @param {String} query
11 * @param {Object} cfg
12 * @param {String} cfg.language Query language, default is Standard SQL
13 * @param {String} cfg.indent Characters used for indentation, default is " " (2 spaces)
14 * @param {Object} cfg.params Collection of params for placeholder replacement
15 * @return {String}
16 */
17 format: (query, cfg) => {
18 cfg = cfg || {};
19
20 switch (cfg.language) {
21 case "db2":
22 return new Db2Formatter(cfg).format(query);
23 case "n1ql":
24 return new N1qlFormatter(cfg).format(query);
25 case "pl/sql":
26 return new PlSqlFormatter(cfg).format(query);
27 case "sql":
28 case undefined:
29 return new StandardSqlFormatter(cfg).format(query);
30 default:
31 throw Error(`Unsupported SQL dialect: ${cfg.language}`);
32 }
33 }
34};