Skip to content

Commit 15dfc6d

Browse files
committed
update function name
1 parent e19736c commit 15dfc6d

6 files changed

Lines changed: 91 additions & 81 deletions

File tree

README.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ npm install node-sql-parser --save
3333
```javascript
3434
const { Parser } = require('node-sql-parser');
3535
const parser = new Parser();
36-
const ast = parser.sqlToAst('SELECT * FROM t');
36+
const ast = parser.astify('SELECT * FROM t');
3737

3838
console.log(ast);
3939
```
@@ -91,14 +91,22 @@ parser.whiteListCheck(sql, whiteColumnList, 'column') // if check failed, an err
9191
### Convert AST back to SQL
9292

9393
```javascript
94-
const { Parser, util } = require('node-sql-parser');
94+
const { Parser } = require('node-sql-parser');
9595
const parser = new Parser()
96-
const ast = parser.sqlToAst('SELECT * FROM t');
97-
const sql = util.astToSQL(ast);
96+
const ast = parser.astify('SELECT * FROM t');
97+
const sql = parse.sqlify(ast);
9898

9999
console.log(sql); // SELECT * FROM `t`
100100
```
101101

102+
### TableList, ColumnList, Ast
103+
104+
```javascript
105+
const { Parser } = require('node-sql-parser');
106+
const parser = new Parser()
107+
const { tableList, columnList, ast } = parser.parse('SELECT * FROM t');
108+
```
109+
102110
## :kissing_heart: Acknowledgement
103111

104112
This project is based on the SQL parser extracted from [flora-sql-parser](https://github.com/godmodelabs/flora-sql-parser) module.

lib/parser.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
'use strict'
22

33
const parseFn = require('../build/pegjs-parser').parse
4+
const astToSQL = require('./sql')
45

56
class Parser {
6-
sqlToAst(sql) {
7+
astify(sql) {
78
const astInfo = this.parse(sql)
89
return astInfo && astInfo.ast
910
}
1011

12+
sqlify(ast) {
13+
return astToSQL(ast)
14+
}
15+
1116
parse(sql) {
1217
return parseFn(sql)
1318
}

lib/util.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
'use strict'
22

3-
const astToSQL = require('./sql')
4-
53
/**
64
* @param {(Array|boolean|string|number|null)} value
75
* @return {Object}
@@ -73,5 +71,4 @@ module.exports = {
7371
createBinaryExpr,
7472
createValueExpr,
7573
replaceParams : (ast, params) => replaceParams(JSON.parse(JSON.stringify(ast)), params),
76-
astToSQL,
7774
}

test/ast.spec.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ describe('AST', () => {
88
let sql;
99

1010
function getParsedSql(sql) {
11-
const ast = parser.sqlToAst(sql);
12-
return util.astToSQL(ast);
11+
const ast = parser.astify(sql);
12+
return parser.sqlify(ast);
1313
}
1414

1515
describe('select statement', () => {
@@ -393,7 +393,7 @@ describe('AST', () => {
393393
limit: null
394394
};
395395

396-
expect(util.astToSQL(ast)).to.equal(`SELECT \`a\` FROM \`t\` WHERE \`id\` ${sqlOperator} (1, 2)`);
396+
expect(parser.sqlify(ast)).to.equal(`SELECT \`a\` FROM \`t\` WHERE \`id\` ${sqlOperator} (1, 2)`);
397397
});
398398
});
399399

@@ -586,7 +586,7 @@ describe('AST', () => {
586586
let ast;
587587

588588
it('should replace single parameter', () => {
589-
ast = parser.sqlToAst('SELECT col FROM t WHERE id = :id');
589+
ast = parser.astify('SELECT col FROM t WHERE id = :id');
590590
ast = util.replaceParams(ast, { id: 1 });
591591

592592
expect(ast.where).to.eql({
@@ -598,7 +598,7 @@ describe('AST', () => {
598598
});
599599

600600
it('should replace multiple parameters', () => {
601-
ast = parser.sqlToAst('SELECT col FROM t WHERE id = :id AND "type" = :type');
601+
ast = parser.astify('SELECT col FROM t WHERE id = :id AND "type" = :type');
602602
ast = util.replaceParams(ast, { id: 1, type: 'foobar' });
603603

604604
expect(ast.where).to.eql({
@@ -620,7 +620,7 @@ describe('AST', () => {
620620
});
621621

622622
it('should set parameter with string', () => {
623-
ast = parser.sqlToAst('SELECT col1 FROM t WHERE col2 = :name');
623+
ast = parser.astify('SELECT col1 FROM t WHERE col2 = :name');
624624
ast = util.replaceParams(ast, { name: 'John Doe' });
625625

626626
expect(ast.where).to.eql({
@@ -632,7 +632,7 @@ describe('AST', () => {
632632
});
633633

634634
it('should set parameter with boolean value', () => {
635-
ast = parser.sqlToAst('SELECT col1 FROM t WHERE isMain = :main');
635+
ast = parser.astify('SELECT col1 FROM t WHERE isMain = :main');
636636
ast = util.replaceParams(ast, { main: true });
637637

638638
expect(ast.where).to.eql({
@@ -644,7 +644,7 @@ describe('AST', () => {
644644
});
645645

646646
it('should set parameter with null value', () => {
647-
ast = parser.sqlToAst('SELECT col1 FROM t WHERE col2 = :param');
647+
ast = parser.astify('SELECT col1 FROM t WHERE col2 = :param');
648648
ast = util.replaceParams(ast, { param: null });
649649

650650
expect(ast.where).to.eql({
@@ -656,7 +656,7 @@ describe('AST', () => {
656656
});
657657

658658
it('should set parameter with array as value', () => {
659-
ast = parser.sqlToAst('SELECT col1 FROM t WHERE id = :ids');
659+
ast = parser.astify('SELECT col1 FROM t WHERE id = :ids');
660660
ast = util.replaceParams(ast, { ids: [1, 3, 5, 7] });
661661

662662
expect(ast.where).to.eql({
@@ -676,15 +676,15 @@ describe('AST', () => {
676676
});
677677

678678
it('should throw an exception if no value for parameter is available', () => {
679-
ast = parser.sqlToAst('SELECT col FROM t WHERE id = :id');
679+
ast = parser.astify('SELECT col FROM t WHERE id = :id');
680680

681681
expect(() => {
682682
util.replaceParams(ast, { foo: 'bar' });
683683
}).to.throw('no value for parameter :id found');
684684
});
685685

686686
it('should return new AST object', () => {
687-
ast = parser.sqlToAst('SELECT col FROM t WHERE id = :id');
687+
ast = parser.astify('SELECT col FROM t WHERE id = :id');
688688
const resolvedParamAST = util.replaceParams(ast, { id: 1 });
689689

690690
expect(ast).to.not.eql(resolvedParamAST);
@@ -747,7 +747,7 @@ describe('AST', () => {
747747
limit: null
748748
};
749749

750-
expect(util.astToSQL(ast)).to.equal(`DELETE \`a\` FROM \`t\` WHERE \`id\` ${sqlOperator} (1, 2)`);
750+
expect(parser.sqlify(ast)).to.equal(`DELETE \`a\` FROM \`t\` WHERE \`id\` ${sqlOperator} (1, 2)`);
751751
});
752752
});
753753

@@ -883,7 +883,7 @@ describe('AST', () => {
883883
}
884884
}
885885

886-
expect(util.astToSQL(ast)).to.equal(`UPDATE \`a\` SET \`col1\` = 5 WHERE \`id\` ${sqlOperator} (1, 2)`);
886+
expect(parser.sqlify(ast)).to.equal(`UPDATE \`a\` SET \`col1\` = 5 WHERE \`id\` ${sqlOperator} (1, 2)`);
887887
});
888888
});
889889

@@ -967,7 +967,7 @@ describe('AST', () => {
967967
});
968968

969969
it(`should throw exception for drop statements`, () => {
970-
expect(util.astToSQL.bind(null, {type: 'Drop'})).to.throw(Error, `Drop statements not supported at the moment`);
970+
expect(parser.sqlify.bind(null, {type: 'Drop'})).to.throw(Error, `Drop statements not supported at the moment`);
971971
});
972972

973973
it('Drop statement not surported!', () => {

test/insert.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ describe('insert', () => {
3030
it('should parse insert and select', () => {
3131
const sql = 'INSERT INTO t1 values("1223", "name") ; SELECT * FROM t'
3232
const [sqla, sqlb] = sql.split(';')
33-
const astFirstSQL = parser.sqlToAst(sqla.trim())
34-
const astSecondSQL = parser.sqlToAst(sqlb.trim())
33+
const astFirstSQL = parser.astify(sqla.trim())
34+
const astSecondSQL = parser.astify(sqlb.trim())
3535
const { tableList, columnList, ast } = parser.parse(sql)
3636
expect(tableList).to.eql(['insert::null::t1', 'select::null::t'])
3737
expect(columnList).to.eql(['insert::t1::(.*)', 'select::null::(.*)'])

0 commit comments

Comments
 (0)