pg-english

0.1.35 • Public • Published

pg-english

pg-english

Convert english query to informal SQL SELECT.

NOTE: pg-slang can convert informal SQL to formal SQL.

var english = require('pg-english');
// english.token([type], [value]): token
// english.number(<text>): processed text
// english.unit(<text>): processed text
// english.reserved(<text>): processed text
// english.entity(<text>, <match fn>, [this]): Promise (processed text)
// english(<text>, <match fn>, [this], [options])
// -> Promise (processed text)
 
// <match fn>(<texts>)
// - texts: array of text
// -> Promise {type, value, length}
// - type: token type (table/column/row)
// - value: token value
// - hint: token hint (identifies table)
// - length: token length (from start of texts)
 
// options: {
//   table: undefined,       // default table: none
//   columns: {<table>: []}, // default columns per table: none
// }
 
 
function match(txts) {
  var z = null, txt = txts.join(' ');
  if(txt.startsWith('ascorbic acid')) z = {type: 'column', value: 'ASCORBIC ACID', length: 2};
  else if(txt.startsWith('food')) z = {type: 'table', value: 'FOOD', length: 1};
  return Promise.resolve(z);
};
await english('show food with ascorbic acid less than twenty nine mg', match);
// SELECT "ASCORBIC ACID" FROM "FOOD" WHERE ("ASCORBIC ACID" < 0.029)

Methods:

Package Sidebar

Install

npm i pg-english

Weekly Downloads

23

Version

0.1.35

License

MIT

Unpacked Size

20.7 kB

Total Files

4

Last publish

Collaborators

  • wolfram77