OData query string parser for node.js based on pegjs.
Fork with added support for the IN
filter. Add uuid and $count=true
for odata v4.0 querys.
npm install @licheng5625/odata-parser
var parser = require("odata-parser");
var ast = parser.parse("$top=10&$skip=5&$select=foo")
util.inspect(ast)
will result in:
{
'$top': 10,
'$skip': 5,
'$select': [ 'foo' ]
}
Filters like:
parser.parse("$filter=Name eq 'John' and LastName lt 'Doe'")
results in:
{
$filter: {
type: 'and',
left: {
type: 'eq',
left: {
type: 'property',
name: 'Name'
},
right: {
type: 'literal',
value: 'John'
}
},
right: {
type: 'lt',
left: {
type: 'property',
name: 'LastName'
},
right: {
type: 'literal',
value: 'Doe'
}
}
}
}
Using functions in filters
parser.parse("$filter=substringof('nginx', Servers)")
restuls in:
{
$filter: {
type: 'functioncall',
func: 'substringof',
args: [{
type: 'literal',
value: 'nginx'
}, {
type: 'property',
name: 'Servers'
}]
}
}
Forked by Seam
This project is licensed under the MIT license. See the LICENSE file for more info.