13.1.3-rc0 • Published 2 years ago

@div_arora/libpg-query v13.1.3-rc0

Weekly downloads
-
License
LICENSE IN LICENS...
Repository
github
Last release
2 years ago

libpg-query

The real PostgreSQL parser, exposed for nodejs.

Primarily used for the node.js parser and deparser pgsql-parser

Requirements

Install node-gyp globally

npm install node-gyp -g

How to re-buid

git clone -b 10-latest git://github.com/lfittl/libpg_query
cd libpg_query
make

Then get the .a file and drop it in the folder in this repo.

Installation

npm install libpg-query

Documentation

query.parseQuery(sql)/parseQuerySync

Parses the sql and returns a Promise for the parse tree (or returns the parse tree directly in the sync version). May reject with/throw a parse error.

The return value is an array, as multiple queries may be provided in a single string (semicolon-delimited, as Postgres expects).

query.parsePlPgSQL(funcsSql)/query.parsePlPgSQLSync(funcsSql)

Parses the contents of a PL/PGSql function, from a CREATE FUNCTION declaration, and returns a Promise for the parse tree (or returns the parse tree directly in the sync version). May reject with/throw a parse error.

Example

const parser = require('libpg-query');
parser.parseQuery('select 1').then(console.log);

Related

Credit

This is based on the output of libpg_query. This wraps the static library output and links it into a node module for use in js.

All credit for the hard problems goes to Lukas Fittl.

Additional thanks for node binding Ethan Resnick.

Original Code and License