Socket
Socket
Sign inDemoInstall

@bitovi/objection-querystring-parser

Package Overview
Dependencies
37
Maintainers
15
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.7 to 0.2.8

license.md

29

lib/parse-fields.js

@@ -9,19 +9,18 @@ const {

let errors = [];
if (containsNoErrorFromParser(fieldErrors)) {
if (!isObject(field)) {
errors.push("Fields field should be an object");
} else {
const keys = Object.keys(field);
if (keys.length > 0) {
const parameters = field[keys[0]];
parsedArray.push({
fx: "select",
isNested: false,
parameters,
});
}
if (!containsNoErrorFromParser(fieldErrors)) {
errors = fieldErrors;
} else if (!isObject(field)) {
errors.push("Fields field should be an object");
} else {
const keys = Object.keys(field);
if (keys.length > 0) {
const parameters = field[keys[0]];
parsedArray.push({
fx: "select",
isNested: false,
parameters,
});
}
} else {
errors = fieldErrors;
}
return {

@@ -28,0 +27,0 @@ results: parsedArray,

@@ -50,3 +50,3 @@ const {

const isSpecialOperator = specialOperators.some(
(op) => op.toLocaleLowerCase() === operator.toLocaleLowerCase()
(op) => op.toLocaleLowerCase() === operator.toLocaleLowerCase(),
);

@@ -99,47 +99,45 @@ sequelizeOperator = operator;

if (filters) {
if (containsNoErrorFromParser(filterErrors)) {
if (isObject(filters)) {
const keys = Object.keys(filters);
if (keys.length > 0) {
for (let key of keys) {
if (
key === Operator.AND ||
key === Operator.OR ||
if (!containsNoErrorFromParser(filterErrors)) {
errors = filterErrors;
} else if (!isObject(filters)) {
errors.push("Filter field must be an object");
} else {
const keys = Object.keys(filters);
if (keys.length > 0) {
for (let key of keys) {
if (
key === Operator.AND ||
key === Operator.OR ||
key === Operator.NOT
) {
const parameters = sortNestedFilters(
filters[key],
key === Operator.OR,
);
const fx =
key === Operator.NOT
) {
const parameters = sortNestedFilters(
filters[key],
key === Operator.OR
);
const fx =
key === Operator.NOT
? objectionFunctions[Operator.NOT]
: objectionFunctions.default;
parsedArray = [
...parsedArray,
{
fx: isOr ? convertToOrFormat(fx) : fx,
isNested: true,
parameters,
},
];
} else {
const { fx, parameters } = parseParametersForObjection(
key,
filters[key],
isOr
);
parsedArray.push({
fx,
isNested: false,
? objectionFunctions[Operator.NOT]
: objectionFunctions.default;
parsedArray = [
...parsedArray,
{
fx: isOr ? convertToOrFormat(fx) : fx,
isNested: true,
parameters,
});
}
},
];
} else {
const { fx, parameters } = parseParametersForObjection(
key,
filters[key],
isOr,
);
parsedArray.push({
fx,
isNested: false,
parameters,
});
}
}
} else {
errors.push("Filter field must be an object");
}
} else {
errors = filterErrors;
}

@@ -146,0 +144,0 @@ }

@@ -9,19 +9,16 @@ const {

let errors = [];
if (containsNoErrorFromParser(includeErrors)) {
if (!isAnArray(include)) {
errors.push("Include field should be an array");
} else {
if (include.length > 0) {
for (let param of include) {
parsedArray.push({
fx: "withGraphFetched",
isNested: false,
parameters: [param],
});
}
}
if (!containsNoErrorFromParser(includeErrors)) {
errors = includeErrors;
} else if (!isAnArray(include)) {
errors.push("Include field should be an array");
} else if (include.length > 0) {
for (let param of include) {
parsedArray.push({
fx: "withGraphFetched",
isNested: false,
parameters: [param],
});
}
} else {
errors = includeErrors;
}
return {

@@ -28,0 +25,0 @@ results: parsedArray,

@@ -10,32 +10,29 @@ const {

let errors = [];
if (containsNoErrorFromParser(pageErrors)) {
if (isObject(page)) {
let { number, size } = page;
if (number != null) {
//default size to 10 if undefined
size = size ?? 10;
if (isNotValidInteger(number) || isNotValidInteger(size)) {
errors.push(
"page[number] and page[size] should be positive integers"
);
} else {
const offset = getOffsetByPageNumber(number, size);
parsedArray.push({
fx: "offset",
isNested: false,
parameters: [offset],
});
parsedArray.push({
fx: "limit",
isNested: false,
parameters: [size],
});
}
if (!containsNoErrorFromParser(pageErrors)) {
errors = pageErrors;
} else if (!isObject(page)) {
errors.push("Page field should be an Object");
} else {
let { number, size } = page;
if (number != null) {
//default size to 10 if undefined
size = size ?? 10;
if (isNotValidInteger(number) || isNotValidInteger(size)) {
errors.push("page[number] and page[size] should be positive integers");
} else {
const offset = getOffsetByPageNumber(number, size);
parsedArray.push({
fx: "offset",
isNested: false,
parameters: [offset],
});
parsedArray.push({
fx: "limit",
isNested: false,
parameters: [size],
});
}
} else {
errors.push("Page field should be an Object");
}
} else {
errors = pageErrors;
}
return {

@@ -42,0 +39,0 @@ results: parsedArray,

@@ -9,23 +9,20 @@ const {

let errors = [];
if (containsNoErrorFromParser(sortErrors)) {
if (!isAnArray(sort)) {
errors.push("Sort field should be an array");
} else {
if (sort.length > 0) {
const newSortFields = sort.map((field) => {
return {
column: field.field,
order: field.direction,
};
});
parsedArray.push({
fx: "orderBy",
isNested: false,
parameters: [newSortFields],
});
}
}
} else {
if (!containsNoErrorFromParser(sortErrors)) {
errors = sortErrors;
} else if (!isAnArray(sort)) {
errors.push("Sort field should be an array");
} else if (sort.length > 0) {
const newSortFields = sort.map((field) => {
return {
column: field.field,
order: field.direction,
};
});
parsedArray.push({
fx: "orderBy",
isNested: false,
parameters: [newSortFields],
});
}
return {

@@ -32,0 +29,0 @@ results: parsedArray,

{
"name": "@bitovi/objection-querystring-parser",
"version": "0.2.7",
"version": "0.2.8",
"description": "",

@@ -20,3 +20,3 @@ "main": "index.js",

"dependencies": {
"@bitovi/querystring-parser": "^0.7.7"
"@bitovi/querystring-parser": "^0.7.8"
},

@@ -34,3 +34,3 @@ "devDependencies": {

},
"gitHead": "e6c78d07257affc6352a304eced33991e5688071"
"gitHead": "96833029f0c567feea43fb4284402fb277719070"
}

@@ -135,5 +135,3 @@ # objection-querystring-parser

```js
const result = querystringParser.parse(
"filter=or(any(age,'10','20'),equals(name,'mike'))"
);
const result = querystringParser.parse("filter=or(any(age,'10','20'),equals(name,'mike'))");
console.log(result);

@@ -164,5 +162,3 @@ // {

```js
const result = querystringParser.parse(
"filter=not(lessOrEqual(age,'10'),equals(name,null))"
);
const result = querystringParser.parse("filter=not(lessOrEqual(age,'10'),equals(name,null))");
console.log(result);

@@ -169,0 +165,0 @@ // {

@@ -66,4 +66,4 @@ const parseFields = require("../lib/parse-fields");

expect(results).toEqual(expectedResults);
}
},
);
});

@@ -187,4 +187,4 @@ const parseFilter = require("../lib/parse-filter");

expect(results).toEqual(expectedResults);
}
},
);
});

@@ -71,4 +71,4 @@ const parseInclude = require("../lib/parse-include");

expect(results).toEqual(expectedResults);
}
},
);
});

@@ -130,4 +130,4 @@ const parsePage = require("../lib/parse-page");

expect(results).toEqual(expectedResults);
}
},
);
});

@@ -66,4 +66,4 @@ const parseSort = require("../lib/parse-sort");

expect(results).toEqual(expectedResults);
}
},
);
});
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