pg-minify
v1.6.5
Published
Minifies PostgreSQL scripts.
Downloads
1,654,179
Maintainers
Readme
pg-minify
Minifies PostgreSQL scripts, reducing the IO usage.
Features:
- Removes
/*multi-line*/
(including nested) and--single-line
comments - Preserves special/copyright multi-line comments that start with
/*!
- Concatenates multi-line strings into a single line with
\n
- Fixes multi-line text, prefixing it with
E
where needed - Removes redundant line gaps: line breaks, tabs and spaces
- Provides basic parsing and error detection for invalid SQL
- Flattens the resulting script into a single line
- Optionally, compresses SQL for minimum space
Installing
$ npm install pg-minify
Usage
const minify = require('pg-minify');
const sql = 'SELECT 1; -- comments';
minify(sql); //=> SELECT 1;
with compression (removes all unnecessary spaces):
const sql = 'SELECT * FROM "table" WHERE col = 123; -- comments';
minify(sql, {compress: true});
//=> SELECT*FROM"table"WHERE col=123;
The library's distribution includes TypeScript declarations.
Error Handling
SQLParsingError is thrown on failed SQL parsing:
try {
minify('SELECT \'1');
} catch (error) {
// error is minify.SQLParsingError instance
// error.message:
// Error parsing SQL at {line:1,col:8}: Unclosed text block.
}
API
minify(sql, [options]) ⇒ String
Minifies SQL into a single line, according to the options
.
options.compress ⇒ Boolean
Compresses / uglifies the SQL to its bare minimum, by removing all unnecessary spaces.
false (default)
- keeps minimum spaces, for easier readtrue
- removes all unnecessary spaces
See also: SQL Compression.
options.removeAll ⇒ Boolean
Removes everything, i.e. special/copyright multi-line comments that start with /*!
will be removed as well.
Limitations
Double-dollar $$
string escaping, which avoids escaping single quotes is not supported.
See issue #12.
License
Copyright © 2020 Vitaly Tomilov; Released under the MIT license.