New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

simple-query-parser

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

simple-query-parser - npm Package Compare versions

Comparing version
1.1.1
to
1.1.2
+4
-0
CHANGELOG.md
# Simple query parse
## V1.1.2
- Handle multiple times the same parameters in query
## v1.1.1

@@ -4,0 +8,0 @@

+28
-24

@@ -29,33 +29,37 @@ const comparatorObject = {

let key = Object.keys(queryParams)[i].toString()
let value = queryParams[key].toString()
let searched = {
key: key,
value: null,
comparator: '='
}
let values = (Array.isArray(queryParams[key]) === true) ? queryParams[key] : [queryParams[key]]
if (!this.containsNumberOrLetter(key)) {
continue
}
for (let j = 0; j < values.length; j++) {
let value = values[j]
let searched = {
key: key,
value: null,
comparator: '='
}
if (value.includes(':')) {
let splittedValue = value.split(':')
if (!this.containsNumberOrLetter(key)) {
continue
}
if (comparatorObject[splittedValue[0]] !== undefined) {
searched.comparator = comparatorObject[splittedValue[0]]
if (value.includes(':')) {
let splittedValue = value.split(':')
searched.value = (comparatorObject[splittedValue[0]] !== 'LIKE') ? this.parseToIntIfNumber(splittedValue[1]) : `%${splittedValue[1]}%`
if (comparatorObject[splittedValue[0]] !== undefined) {
searched.comparator = comparatorObject[splittedValue[0]]
searched.value = (comparatorObject[splittedValue[0]] !== 'LIKE') ? this.parseToIntIfNumber(splittedValue[1]) : `%${splittedValue[1]}%`
}
} else if (value.includes(',')) {
let splittedValue = value.split(',')
searched.value = []
for (let k = 0; k < splittedValue.length; k++) {
searched.value.push(this.parseToIntIfNumber(splittedValue[k]))
}
} else {
searched.value = this.parseToIntIfNumber(value)
}
} else if (value.includes(',')) {
let splittedValue = value.split(',')
searched.value = []
for (let i = 0; i < splittedValue.length; i++) {
searched.value.push(this.parseToIntIfNumber(splittedValue[i]))
}
} else {
searched.value = this.parseToIntIfNumber(value)
paramsArray.push(searched)
}
paramsArray.push(searched)
}

@@ -62,0 +66,0 @@

{
"name": "simple-query-parser",
"version": "1.1.1",
"version": "1.1.2",
"description": "Simple query parser",

@@ -25,4 +25,4 @@ "main": "index.js",

"devDependencies": {
"mocha": "^7.0.1"
"mocha": "7.0.1"
}
}

@@ -44,2 +44,21 @@ const assert = require('assert')

it('should convert an object with arrays query with comparators to array', () => {
let obj = { price: ['gt:23', 'lt:30'], orderBy: 'df:recent' }
let result = queryParser.parse(obj)
assert.deepStrictEqual(result, [{
key: 'price',
value: 23,
comparator: '>'
}, {
key: 'price',
value: 30,
comparator: '<'
}, {
key: 'orderBy',
value: 'recent',
comparator: '!='
}])
})
it('should ignore keys which contains special caracters', () => {

@@ -46,0 +65,0 @@ let obj = { 'pri;ce': 'gt:23', 'order By': 'df:recent', page: 'lte:20' }