Parse simple SQL statements into an abstract syntax tree (AST) with the visited tableList and convert it back to SQL.
- support multiple sql statement seperate by semicolon
- support select, delete, update and insert type
- output the table list that the sql visited with the corresponding authority
const { Parser } = require('node-sql-parser');
const parser = new Parser();
const ast = parser.sqlToAst('SELECT * FROM t');
console.log(ast);- get the table list that the sql visited
- the format is {type}::{dbName}::{tableName} // type could be select, update, delete or insert
const { Parser } = require('node-sql-parser');
const parser = new Parser();
const tableList = parser.tableList('SELECT * FROM t');
console.log(tableList); // ["select::null::t"]const { Parser } = require('node-sql-parser');
const parser = new Parser();
const sql = 'UPDATE a SET id = 1 WHERE name IN (SELECT name FROM b)'
const whiteList = ['(select|update)::(.*)::(a|b)'] // array that contain multiple authorities
parser.whiteListCheck(sql, whiteList) // if check failed, an error would be thrown with relevant error message, if passed it would return undefined- Only SELECT SQL statements are supported for converting ast back to sql currently
const { Parser, util } = require('node-sql-parser');
const parser = new Parser()
const ast = parser.sqlToAst('SELECT * FROM t');
const sql = util.astToSQL(ast);
console.log(sql); // SELECT * FROM `t`This project is based on the SQL parser extracted from flora-sql-parser module.