Socket
Socket
Sign inDemoInstall

form-urlencoded

Package Overview
Dependencies
Maintainers
1
Versions
80
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

form-urlencoded - npm Package Compare versions

Comparing version 1.5.1 to 2.0.0

spec/form-urlencoded.spec.js

107

form-urlencoded.js
// Filename: formurlencoded.js
// Timestamp: 2016.03.07-12:29:28 (last modified)
// Timestamp: 2017.07.04-14:35:29 (last modified)
// Author(s): Bumblehead (www.bumblehead.com), JBlashill (james@blashill.com), Jumper423 (jump.e.r@yandex.ru)

@@ -8,71 +8,60 @@ //

module.exports = function (data, opts) {
"use strict";
module.exports = (data, opts = {}) => {
const sorted = Boolean(opts.sorted),
skipIndex = Boolean(opts.skipIndex),
ignorenull = Boolean(opts.ignorenull),
// ES5 compatible version of `/[^ !'()~\*]/gu`, https://mothereff.in/regexpu
var encodechar = new RegExp([
'(?:[\0-\x1F"-&\+-\}\x7F-\uD7FF\uE000-\uFFFF]|',
'[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|',
'(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])'
].join(''), 'g');
// ES5 compatible version of `/[^ !'()~\*]/gu`, https://mothereff.in/regexpu
encodechar = new RegExp([
'(?:[\0-\x1F"-&\+-\}\x7F-\uD7FF\uE000-\uFFFF]|',
'[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|',
'(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])'
].join(''), 'g'),
opts = typeof opts === 'object' ? opts : {};
encode = value =>
String(value)
.replace(encodechar, encodeURIComponent)
.replace(/ /g, '+')
.replace(/[!'()~\*]/g, ch =>
'%' + ch.charCodeAt().toString(16).slice(-2).toUpperCase()),
function encode(value) {
return String(value)
.replace(encodechar, encodeURIComponent)
.replace(/ /g, '+')
.replace(/[!'()~\*]/g, function (ch) {
return '%' + ch.charCodeAt().toString(16).slice(-2).toUpperCase();
});
}
keys = (obj, keyarr = Object.keys(obj)) =>
sorted ? keyarr.sort() : keyarr,
function keys(obj) {
var itemsKeys = Object.keys(obj);
filterjoin = arr =>
arr.filter(e => e).join('&'),
return opts.sorted ? itemsKeys.sort() : itemsKeys;
}
objnest = (name, obj) =>
filterjoin(keys(obj).map(key =>
nest(name + '[' + key + ']', obj[key]))),
function filterjoin(arr) {
return arr.filter(function (e) {
return e;
}).join('&');
}
arrnest = (name, arr) =>
arr.length
? filterjoin(arr.map((elem, index) =>
skipIndex
? nest(name + '[]', elem)
: nest(name + '[' + index + ']', elem)
))
: encode(name + '[]'),
function objnest(name, obj) {
return filterjoin(keys(obj).map(function (key) {
return nest(name + '[' + key + ']', obj[key]);
}));
}
nest = (name, value) => {
let type = typeof value,
f = null;
function arrnest(name, arr) {
return arr.length ? filterjoin(arr.map(function (elem, index) {
if (opts.skipIndex) {
return nest(name + '[]', elem);
} else {
return nest(name + '[' + index + ']', elem);
if (value === f) {
f = ignorenull ? f : encode(name) + '=' + f;
} else if (/string|number|boolean/.test(type)) {
f = encode(name) + '=' + encode(value);
} else if (Array.isArray(value)) {
f = arrnest(name, value);
} else if (type === 'object') {
f = objnest(name, value);
}
})) : encode(name + '[]');
}
function nest(name, value) {
var type = typeof value,
f = null;
return f;
};
if (value === f) {
f = opts.ignorenull ? f : encode(name) + '=' + f;
} else if (/string|number|boolean/.test(type)) {
f = encode(name) + '=' + encode(value);
} else if (Array.isArray(value)) {
f = arrnest(name, value);
} else if (type === 'object') {
f = objnest(name, value);
}
return f;
}
return data && filterjoin(keys(data).map(function (key) {
return nest(key, data[key]);
}));
return data && filterjoin(keys(data).map(key =>
nest(key, data[key])
));
};
{
"name": "form-urlencoded",
"main": "form-urlencoded",
"version": "1.5.1",
"version": "2.0.0",
"description": "Return an object as an 'x-www-form-urlencoded' string",
"author": "Chris <chris@bumblehead.com>",
"license" : "MIT",
"license": "MIT",
"readmeFilename": "README.md",
"contributors": [{
"name": "James",
"email": "james@blashill.com"
},{
"name": "Jumper423",
"email": "jump.e.r@yandex.ru"
}],
"contributors": [
{
"name": "James",
"email": "james@blashill.com"
},
{
"name": "Jumper423",
"email": "jump.e.r@yandex.ru"
}
],
"repository": {

@@ -33,8 +36,9 @@ "type": "git",

],
"devDependencies" : {
"jasmine-node" : ">=1.3.0"
"devDependencies": {
"jasmine": "2.5.3",
"jasmine-spec-reporter": "3.2.0"
},
"scripts" : {
"test" : "node node_modules/jasmine-node/bin/jasmine-node --verbose test/"
"scripts": {
"test": "node node_modules/jasmine/bin/jasmine.js --verbose"
}
}

@@ -7,5 +7,4 @@ form-urlencoded

Returns 'x-www-form-urlencoded' string data, an encoding often used when an [HTML form is submitted][1]. Form data is serialised in [this format][2] and sent to a server.
Returns 'x-www-form-urlencoded' string data, an encoding often used when an [HTML form is submitted][1]. Form data is serialised in [this format][2] and sent to a server. _use form-urlencoded@1.2.1 for pre-ES2016 sources_
```javascript

@@ -43,7 +42,7 @@ var formurlencoded = require('form-urlencoded');

![scrounge](https://github.com/iambumblehead/scroungejs/raw/master/img/hand.png)[![es5 classic][7]][7]
![scrounge](https://github.com/iambumblehead/scroungejs/raw/master/img/hand.png)
(The MIT License)
Copyright (c) 2012-2016 [Bumblehead][0] <chris@bumblehead.com>
Copyright (c) [Bumblehead][0] <chris@bumblehead.com>

@@ -50,0 +49,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc