Socket
Socket
Sign inDemoInstall

fast-querystring

Package Overview
Dependencies
1
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.0 to 0.6.1

13

lib/parse.js

@@ -5,2 +5,4 @@ "use strict";

const plusRegex = /\+/g;
/**

@@ -37,6 +39,5 @@ * @callback parse

keyEndingIndex = hasBothKeyValuePair ? equalityIndex : i;
key = input.slice(startingIndex + 1, keyEndingIndex);
// Check if the current range consist of a single key
// Only update value if '=' exists in the current range
if (hasBothKeyValuePair) {

@@ -50,3 +51,3 @@ value = input.slice(equalityIndex + 1, i);

if (keyHasPlus) {
key = key.replaceAll("+", " ");
key = key.replace(plusRegex, " ");
}

@@ -61,3 +62,3 @@

if (valueHasPlus) {
value = value.replaceAll("+", " ");
value = value.replace(plusRegex, " ");
}

@@ -75,2 +76,3 @@

// Optimization: value.pop is faster than Array.isArray(value)
if (currentValue.pop) {

@@ -85,3 +87,2 @@ currentValue.push(value);

// Reset reading key value pairs
key = "";
value = "";

@@ -105,3 +106,3 @@ startingIndex = i;

}
// Check '+', and replace it with empty space.
// Check '+', and remember to replace it with empty space.
else if (c === 43) {

@@ -108,0 +109,0 @@ if (equalityIndex <= startingIndex) {

@@ -37,2 +37,4 @@ "use strict";

const keyLength = keys.length;
const separator = "&";
let valueLength = 0;

@@ -45,16 +47,20 @@ for (let i = 0; i < keyLength; i++) {

if (i) {
result += "&";
result += separator;
}
if (Array.isArray(value)) {
const valueLength = value.length;
valueLength = value.length;
for (let j = 0; j < valueLength; j++) {
if (j) {
result += "&";
result += separator;
}
result += encodedKey + getAsPrimitive(value[j]);
// Optimization: Dividing into multiple lines improves the performance.
// Since v8 does not need to care about the '+' character if it was one-liner.
result += encodedKey;
result += getAsPrimitive(value[j]);
}
} else {
result += encodedKey + getAsPrimitive(value);
result += encodedKey;
result += getAsPrimitive(value);
}

@@ -61,0 +67,0 @@ }

{
"name": "fast-querystring",
"version": "0.6.0",
"version": "0.6.1",
"description": "",
"main": "lib/index.js",
"type": "commonjs",
"engines": {
"node": ">= 15.0.0"
},
"scripts": {

@@ -11,0 +8,0 @@ "format": "rome format . --write",

@@ -51,13 +51,13 @@ # fast-querystring

โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ qs โ”‚ 10000 โ”‚ 314822.82 op/sec โ”‚ ยฑ 1.12 % โ•‘
โ•‘ query-string โ”‚ 1000 โ”‚ 330364.46 op/sec โ”‚ ยฑ 0.89 % โ•‘
โ•‘ querystringify โ”‚ 10000 โ”‚ 442352.24 op/sec โ”‚ ยฑ 1.31 % โ•‘
โ•‘ @aws-sdk/querystring-parser โ”‚ 10000 โ”‚ 471561.65 op/sec โ”‚ ยฑ 1.12 % โ•‘
โ•‘ URLSearchParams-with-Object.fromEntries โ”‚ 10000 โ”‚ 865453.19 op/sec โ”‚ ยฑ 2.29 % โ•‘
โ•‘ URLSearchParams-with-construct โ”‚ 10000 โ”‚ 1234031.63 op/sec โ”‚ ยฑ 3.12 % โ•‘
โ•‘ node:querystring โ”‚ 10000 โ”‚ 1484397.94 op/sec โ”‚ ยฑ 2.46 % โ•‘
โ•‘ qs โ”‚ 10000 โ”‚ 317841.53 op/sec โ”‚ ยฑ 1.18 % โ•‘
โ•‘ query-string โ”‚ 10000 โ”‚ 341009.91 op/sec โ”‚ ยฑ 1.06 % โ•‘
โ•‘ querystringify โ”‚ 1000 โ”‚ 451609.79 op/sec โ”‚ ยฑ 0.61 % โ•‘
โ•‘ @aws-sdk/querystring-parser โ”‚ 1000 โ”‚ 477241.09 op/sec โ”‚ ยฑ 0.69 % โ•‘
โ•‘ URLSearchParams-with-Object.fromEntries โ”‚ 10000 โ”‚ 870095.07 op/sec โ”‚ ยฑ 3.29 % โ•‘
โ•‘ URLSearchParams-with-construct โ”‚ 10000 โ”‚ 1232650.60 op/sec โ”‚ ยฑ 2.95 % โ•‘
โ•‘ node:querystring โ”‚ 10000 โ”‚ 1462802.04 op/sec โ”‚ ยฑ 3.69 % โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ Fastest test โ”‚ Samples โ”‚ Result โ”‚ Tolerance โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ fast-querystring โ”‚ 10000 โ”‚ 1798615.82 op/sec โ”‚ ยฑ 2.65 % โ•‘
โ•‘ fast-querystring โ”‚ 10000 โ”‚ 1809816.84 op/sec โ”‚ ยฑ 3.19 % โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

@@ -74,13 +74,13 @@ ```

โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ query-string โ”‚ 10000 โ”‚ 290850.12 op/sec โ”‚ ยฑ 1.52 % โ•‘
โ•‘ qs โ”‚ 10000 โ”‚ 324324.45 op/sec โ”‚ ยฑ 2.05 % โ•‘
โ•‘ http-querystring-stringify โ”‚ 10000 โ”‚ 481327.85 op/sec โ”‚ ยฑ 1.77 % โ•‘
โ•‘ URLSearchParams โ”‚ 10000 โ”‚ 538867.84 op/sec โ”‚ ยฑ 3.93 % โ•‘
โ•‘ querystringify โ”‚ 10000 โ”‚ 774992.18 op/sec โ”‚ ยฑ 2.51 % โ•‘
โ•‘ node:querystring โ”‚ 10000 โ”‚ 1827458.66 op/sec โ”‚ ยฑ 5.41 % โ•‘
โ•‘ query-string โ”‚ 10000 โ”‚ 284130.63 op/sec โ”‚ ยฑ 1.62 % โ•‘
โ•‘ qs โ”‚ 10000 โ”‚ 334799.48 op/sec โ”‚ ยฑ 1.93 % โ•‘
โ•‘ http-querystring-stringify โ”‚ 10000 โ”‚ 482642.49 op/sec โ”‚ ยฑ 1.72 % โ•‘
โ•‘ URLSearchParams โ”‚ 10000 โ”‚ 587274.65 op/sec โ”‚ ยฑ 1.88 % โ•‘
โ•‘ querystringify โ”‚ 10000 โ”‚ 753960.35 op/sec โ”‚ ยฑ 2.20 % โ•‘
โ•‘ node:querystring โ”‚ 10000 โ”‚ 1796993.95 op/sec โ”‚ ยฑ 5.34 % โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ Fastest test โ”‚ Samples โ”‚ Result โ”‚ Tolerance โ•‘
โ•Ÿโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ข
โ•‘ fast-querystring โ”‚ 10000 โ”‚ 1881474.27 op/sec โ”‚ ยฑ 4.78 % โ•‘
โ•‘ fast-querystring โ”‚ 10000 โ”‚ 2051022.89 op/sec โ”‚ ยฑ 4.52 % โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•งโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
```
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