https://github.com/vitaly-t/pg-minify
Minifies PostgreSQL scripts.
https://github.com/vitaly-t/pg-minify
comment minify postgresql sql
Last synced: about 1 year ago
JSON representation
Minifies PostgreSQL scripts.
- Host: GitHub
- URL: https://github.com/vitaly-t/pg-minify
- Owner: vitaly-t
- License: mit
- Created: 2016-01-19T10:34:39.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-03-09T22:22:47.000Z (over 1 year ago)
- Last Synced: 2025-05-15T02:09:48.368Z (about 1 year ago)
- Topics: comment, minify, postgresql, sql
- Language: JavaScript
- Homepage:
- Size: 114 KB
- Stars: 53
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: License
Awesome Lists containing this project
README
pg-minify
=========
[](https://github.com/vitaly-t/pg-minify/actions/workflows/ci.yml)
[](https://nodejs.org)
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
```js
const minify = require('pg-minify');
const sql = 'SELECT 1; -- comments';
minify(sql); //=> SELECT 1;
```
with compression (removes all unnecessary spaces):
```js
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:
```js
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 read
* `true` - 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 [#12](https://github.com/vitaly-t/pg-minify/issues/12).
## License
Copyright © 2025 [Vitaly Tomilov](https://github.com/vitaly-t);
Released under the MIT license.
[SQLParsingError]:https://github.com/vitaly-t/pg-minify/blob/master/lib/error.js#L22
[TypeScript]:https://github.com/vitaly-t/pg-minify/tree/master/typescript
[SQL Compression]:https://github.com/vitaly-t/pg-minify/wiki/SQL-Compression