pg-minify
    TypeScript icon, indicating that this package has built-in type declarations

    1.6.2 • Public • Published

    pg-minify

    Minifies PostgreSQL scripts, reducing the IO usage.

    Build Status Coverage Status Join the chat at https://gitter.im/vitaly-t/pg-minify

    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 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.

    Testing

    First, clone the repository and install DEV dependencies.

    $ npm test
    

    Testing with coverage:

    $ npm run coverage
    

    License

    Copyright © 2020 Vitaly Tomilov; Released under the MIT license.

    Install

    npm i pg-minify

    DownloadsWeekly Downloads

    179,625

    Version

    1.6.2

    License

    MIT

    Unpacked Size

    14.5 kB

    Total Files

    8

    Last publish

    Collaborators

    • vitaly.tomilov