Socket
Socket
Sign inDemoInstall

jsonsql

Package Overview
Dependencies
0
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.1 to 0.0.2

61

index.js

@@ -19,3 +19,3 @@ var AND = '&&'

}
, lexicalities = {}
, AST = {}
, options = {};

@@ -49,3 +49,3 @@

}
LogicalGrouping(lexicalities, where);
LogicalGrouping(AST, where);
}

@@ -77,3 +77,3 @@ function LogicalGrouping(current, where) {

current.or = [where];
ExtractExpression(lexicalities.or ? lexicalities.or : lexicalities.and)
ExtractExpression(AST.or ? AST.or : AST.and)
}

@@ -160,9 +160,9 @@ }

}
function FilterOR(lexicality, row) {
function FilterOR(ASTNode, row) {
var res = false;
for (var k in lexicality) {
for (var k in ASTNode) {
var filterFunc = (k === AND_STR ? FilterAND : (k === OR_STR ? FilterOR : Filter));
res = res || filterFunc(lexicality[k], row);
res = res || filterFunc(ASTNode[k], row);
if(options.trace)
console.log(synopsis.step, '======((( or', lexicality[k], res);
console.log(synopsis.step, '======((( or', ASTNode[k], res);
if (res) return res;

@@ -172,9 +172,9 @@ }

}
function FilterAND(lexicality, row) {
function FilterAND(ASTNode, row) {
var res = true;
for (var k in lexicality) {
for (var k in ASTNode) {
var filterFunc = (k === AND_STR ? FilterAND : (k === OR_STR ? FilterOR : Filter));
res = res && filterFunc(lexicality[k], row);
res = res && filterFunc(ASTNode[k], row);
if(options.trace)
console.log(synopsis.step, '======((( and', lexicality[k], res);
console.log(synopsis.step, '======((( and', ASTNode[k], res);
if (!res) return res;

@@ -184,26 +184,25 @@ }

}
function Filter(lexicality, row) {
function Filter(ASTNode, row) {
synopsis.step += 1;
//console.log(synopsis.level, 'lexicality', lexicality);
if (lexicality.or) {
var res = FilterOR(lexicality.or, row);
if (ASTNode.or) {
var res = FilterOR(ASTNode.or, row);
if(options.trace)
console.log(synopsis.step, 'OR', lexicality, res);
console.log(synopsis.step, 'OR', ASTNode, res);
return res;
} else if (lexicality.and) {
var res = FilterAND(lexicality.and, row);
} else if (ASTNode.and) {
var res = FilterAND(ASTNode.and, row);
if(options.trace)
console.log(synopsis.step, 'AND', lexicality, res);
console.log(synopsis.step, 'AND', ASTNode, res);
return res;
} else if (typeof lexicality === 'object') {
if (lexicality.eq) { // =
return __hierarchize(row, lexicality.eq[0]) === lexicality.eq[1];
} else if (lexicality.ne) { // !=
return __hierarchize(row, lexicality.ne[0]) !== lexicality.ne[1];
} else if (lexicality.req) { // ~
return __contains(__hierarchize(row, lexicality.req[0]), lexicality.req[1]);
} else if (lexicality.nreq) { // ~
return !__contains(__hierarchize(row, lexicality.nreq[0]), lexicality.nreq[1]);
} else if (typeof ASTNode === 'object') {
if (ASTNode.eq) { // =
return __hierarchize(row, ASTNode.eq[0]) === ASTNode.eq[1];
} else if (ASTNode.ne) { // !=
return __hierarchize(row, ASTNode.ne[0]) !== ASTNode.ne[1];
} else if (ASTNode.req) { // ~
return __contains(__hierarchize(row, ASTNode.req[0]), ASTNode.req[1]);
} else if (ASTNode.nreq) { // ~
return !__contains(__hierarchize(row, ASTNode.nreq[0]), ASTNode.nreq[1]);
} else {
return Filter(lexicality, row);
return Filter(ASTNode, row);
}

@@ -215,3 +214,3 @@ }

for (var k in dataSource)
if (Filter(lexicalities, dataSource[k]))
if (Filter(AST, dataSource[k]))
result.push(dataSource[k]);

@@ -234,3 +233,3 @@ return result;

};
lexicalities = {};
AST = {};
opts = opts || {

@@ -237,0 +236,0 @@ trace :false

{
"name": "jsonsql",
"version": "0.0.1",
"version": "0.0.2",
"description" : "A SQL-like query language for JSON objects.",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc