Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
488850e
Bootstrap v2
dsferruzza May 14, 2014
4f94050
Add gulp.js and JSHint
dsferruzza May 14, 2014
2050a87
Fix use from browser
dsferruzza May 14, 2014
f6d663b
Disable debug stuff
dsferruzza May 14, 2014
7133bb0
Add tests
dsferruzza May 14, 2014
f79deb1
Fix bug
dsferruzza May 14, 2014
065b263
Add more tests
dsferruzza May 14, 2014
4c9ccc2
Use gulp to run tests
dsferruzza May 14, 2014
ac6f98a
Improve a regex
dsferruzza May 14, 2014
0f53804
Add more tests
dsferruzza May 14, 2014
3791192
Update JSHint
dsferruzza May 15, 2014
2fb7aad
Fix expressions
dsferruzza May 15, 2014
a4c0953
Fix functions in expressions
dsferruzza May 15, 2014
62380fc
Cleanup
dsferruzza May 15, 2014
9ec5169
Remove quotes from parsed output
dsferruzza May 15, 2014
fabd6f5
Improve column name detection
dsferruzza May 15, 2014
d081db8
Update JSHint
dsferruzza May 16, 2014
b0dd923
Add an interactive demo
dsferruzza May 16, 2014
a431868
Cleanup tests
dsferruzza May 16, 2014
a4518c9
Add basic WHERE support
dsferruzza May 16, 2014
6ad35e4
Add basic ORDER BY support
dsferruzza May 16, 2014
27e20cc
Add basic LIMIT support
dsferruzza May 16, 2014
b9d5df0
Check AST's structure
dsferruzza May 16, 2014
09dd03b
Improve tests display
dsferruzza May 19, 2014
24af0e1
Add DELETE support
dsferruzza May 19, 2014
1bf5fe9
Fix typo
dsferruzza May 19, 2014
3689db1
Add JOIN support
dsferruzza May 19, 2014
d9b198f
Add INSERT support
dsferruzza May 21, 2014
e99fde1
Lint tests
dsferruzza May 26, 2014
727924d
Add UPDATE support
dsferruzza May 26, 2014
0d841e3
Update dependencies
dsferruzza Jul 1, 2014
0162f55
Refactor tests
dsferruzza Jul 1, 2014
6c8f6df
Implement ast2ql for insert queries
dsferruzza Jul 1, 2014
89f8514
Implement ast2sql for select queries
dsferruzza Jul 1, 2014
b6efcc3
Add an expression field to table/into properties
dsferruzza Jul 1, 2014
934eccf
Implement ast2sql for update queries
dsferruzza Jul 1, 2014
cc3233e
Implement ast2sql for delete queries
dsferruzza Jul 1, 2014
11f9c24
Add GROUP BY support
dsferruzza Jul 1, 2014
9bf20af
Update dependencies
dsferruzza Jul 4, 2014
6cbdc3a
Fix API test
dsferruzza Jul 4, 2014
f242c3f
Add IN support
dsferruzza Jul 9, 2014
09e8799
Replace QUnit by Mocha
dsferruzza Jul 12, 2014
addfecd
Update dependencies
dsferruzza Jul 12, 2014
90e7a44
Update README
dsferruzza Jul 12, 2014
4d7db7d
Split tests into several files
dsferruzza Jul 12, 2014
f313f93
Use CommonJS + Browserify
dsferruzza Jul 12, 2014
eab6b24
Add a "browserify without dependencies" task
dsferruzza Jul 12, 2014
58a42c6
Build minified scripts
dsferruzza Jul 12, 2014
ad76b3f
Split code
dsferruzza Jul 13, 2014
ec60408
Refactor tests
dsferruzza Jul 13, 2014
2ce5702
Add token positions for SELECT expressions
dsferruzza Jul 13, 2014
46141f4
Add token positions for FROM expressions
dsferruzza Jul 13, 2014
63360a7
Add token positions for JOIN expressions
dsferruzza Jul 14, 2014
835c8fa
Add token positions for WHERE expressions
dsferruzza Jul 14, 2014
8311938
Add token positions for GROUP expressions
dsferruzza Jul 14, 2014
38b808d
Add token positions for ORDER expressions
dsferruzza Jul 14, 2014
f09dd85
Update builds
dsferruzza Jul 14, 2014
c994357
Update dependencies
dsferruzza Jul 15, 2014
dcdaf3e
Update dependencies
dsferruzza Aug 6, 2014
d26e2e9
Fix typo
dsferruzza Aug 8, 2014
89ea360
Add a human readable error message to output
dsferruzza Aug 8, 2014
a1dcdb0
Improve opt() helper
dsferruzza Aug 8, 2014
a8ae161
Fix #17
dsferruzza Aug 8, 2014
a5ce2ff
Update builds
dsferruzza Aug 8, 2014
5eba132
Update dependencies
dsferruzza Aug 19, 2014
7281179
Update dependencies
dsferruzza Aug 25, 2014
060f88e
Update dependencies
dsferruzza Sep 10, 2014
a5d842e
fixed case sensitivity issue (actually package is lower case) failure…
Jan 3, 2015
b3e6e0e
Merge pull request #19 from jhaynie/v2
dsferruzza Jan 3, 2015
d7c001a
Fix case sensitivity issue
dsferruzza Jan 3, 2015
ddbfdeb
Update dependencies
dsferruzza Sep 22, 2014
2199def
Update builds
dsferruzza Jan 3, 2015
ef768ed
Update dependencies
dsferruzza Feb 12, 2015
591c7f7
Update dependencies
dsferruzza Jun 1, 2015
25988c3
Bump version
dsferruzza Jun 1, 2015
41d2b2d
add between in sql2ast
rrequero Jul 12, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .jshintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"node": true,
"expr": true
}
9 changes: 0 additions & 9 deletions .npmignore

This file was deleted.

31 changes: 0 additions & 31 deletions Gruntfile.js

This file was deleted.

62 changes: 7 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,59 +3,7 @@ simpleSqlParser

Javascript library to parse CRUD (Create Retrieve Update Delete) SQL queries.

## How to use

### From browser

Import the JS file in your page:

```html
<script src="simpleSqlParser.js"></script>
```

### From Node.js

Install the module from [npm](https://npmjs.org/package/simple-sql-parser) using `npm i simple-sql-parser --save`.

Import the JS module in your app:

```js
var simpleSqlParser = require('simple-sql-parser');
```

### Parse a query:

```js
var ast = simpleSqlParser.sql2ast('your SQL query');
console.log(ast);
```

### Create a query from AST:

```js
var query = simpleSqlParser.ast2sql(ast);
console.log(query);
```

*AST means Abstract Syntax Tree.*

## Examples

* See `example.html` (open brower's console)
* Have a look to the unit tests `tests/tests.js` to see what's possible

## Notes

simpleSqlParser only supports these queries:

* SELECT
* INSERT
* UPDATE
* DELETE

simpleSqlParser **is not a full SQL parser!**
It only support few SQL mechanisms and keywords.
Feel free to make a pull request/issue.
**This is a work in progress!**

## How to install dev tools

Expand All @@ -64,9 +12,13 @@ If you want to contribute, please write tests and respect the coding style.
To install dev tools:

- install Node.js (http://nodejs.org/)
- install **grunt-cli** globally: `npm i -g grunt-cli`
- install **gulp** globally: `npm i -g gulp`
- install dev dependencies: `npm i`
- use `grunt` to check your code!
- use `gulp` to check your code!

To update dev tools (because `package.json` has changed):

- install new dev dependencies: `npm i`

## License

Expand Down
23 changes: 0 additions & 23 deletions bower.json

This file was deleted.

27 changes: 27 additions & 0 deletions demo.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo - simpleSqlParser</title>
</head>
<body>
<p>
<label for="q">SQL query:</label><br>
<textarea id="q" cols="100" rows="5">SELECT * FROM table</textarea>
</p>
<p>
<button id="parse" type="button">Parse</button>
</p>
<h2>AST</h2>
<pre id="ast"></pre>

<script src="./dist/simpleSqlParser.min.js"></script>
<script>
var astElem = document.getElementById('ast');
var qElem = document.getElementById('q');
document.getElementById('parse').addEventListener('click', function(e) {
astElem.innerHTML = JSON.stringify(simpleSqlParser.sql2ast(q.value), null, " ");
});
</script>
</body>
</html>
Loading