Socket
Socket
Sign inDemoInstall

canonicalize

Package Overview
Dependencies
0
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.3 to 1.0.4

test/simpletests.js

48

lib/canonicalize.js

@@ -5,33 +5,23 @@ /* jshint esversion: 6 */

module.exports = function (object) {
return serialize(object);
module.exports = function serialize (object) {
if (object === null || typeof object !== 'object' || object.toJSON != null) {
return JSON.stringify(object);
}
function serialize (object) {
if (object === null || typeof object !== 'object' || object.toJSON != null) {
return JSON.stringify(object);
if (Array.isArray(object)) {
return '[' + object.reduce((t, cv, ci) => {
const comma = ci === 0 ? '' : ',';
const value = cv === undefined || typeof cv === 'symbol' ? null : cv;
return t + comma + serialize(value);
}, '') + ']';
}
return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {
if (object[cv] === undefined ||
typeof object[cv] === 'symbol') {
return t;
}
if (Array.isArray(object) && object.length === 0) {
return '[]';
}
if (Array.isArray(object) && object.length === 1) {
return '[' + serialize(object[0]) + ']';
}
if (Array.isArray(object)) {
return '[' + object.reduce((t, cv, ci) => {
t = (ci === 1 ? serialize(t) : t);
return t + ',' + serialize(cv);
}) + ']';
}
const keys = Object.keys(object);
if (keys.length === 0) {
return '{}';
}
if (keys.length === 1) {
return '{' + serialize(keys[0]) + ':' + serialize(object[keys[0]]) + '}';
}
return '{' + keys.sort().reduce((t, cv, ci) => {
t = (ci === 1 ? serialize(t) + ':' + serialize(object[t]) : t);
return t + ',' + serialize(cv) + ':' + serialize(object[cv]);
}) + '}';
}
const comma = t.length === 0 ? '' : ',';
return t + comma + serialize(cv) + ':' + serialize(object[cv]);
}, '') + '}';
};
{
"name": "canonicalize",
"version": "1.0.3",
"version": "1.0.4",
"description": "JSON canonicalize function ",

@@ -5,0 +5,0 @@ "main": "lib/canonicalize.js",

@@ -14,6 +14,6 @@ [![Build Status](https://travis-ci.com/erdtman/canonicalize.svg?branch=master)](https://travis-ci.com/erdtman/canonicalize)

"amount": 500,
"curency": "USD"
"currency": "USD"
}
console.log(JSON.canonicalize(json));
// output: {"amount":500,"curency":"USD","from_account":"543 232 625-3","to_account":"321 567 636-4"}
// output: {"amount":500,"currency":"USD","from_account":"543 232 625-3","to_account":"321 567 636-4"}
```

@@ -20,0 +20,0 @@ ### Crazy Example

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