Socket
Socket
Sign inDemoInstall

json-dry

Package Overview
Dependencies
0
Maintainers
1
Versions
25
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

4

CHANGELOG.md

@@ -0,1 +1,5 @@

## 1.0.4 (2018-06-18)
* Fix circular references that were incorrectly passed to an undrier
## 1.0.3 (2018-02-06)

@@ -2,0 +6,0 @@

63

lib/json-dry.js

@@ -347,3 +347,2 @@ "use strict";

if (constructor && typeof constructor.unDry === 'function') {
//value.undried = constructor.unDry(value.value);
value.unDryConstructor = constructor;

@@ -364,3 +363,2 @@ } else {

if (undriers[value.dry]) {
//value.undried = undriers[value.dry].fnc(this, key, value.value);
value.unDryFunction = undriers[value.dry].fnc;

@@ -655,7 +653,7 @@ } else {

* @since 0.1.4
* @version 1.0.0
* @version 1.0.4
*
* @return {Array}
*/
function regenerateArray(root, current, seen, retrieve, undry_paths, old) {
function regenerateArray(root, holder, current, seen, retrieve, undry_paths, old) {

@@ -668,3 +666,3 @@ var length = current.length,

if (!seen.get(current[i])) {
current[i] = regenerate(root, current[i], seen, retrieve, undry_paths, old);
current[i] = regenerate(root, current, current[i], seen, retrieve, undry_paths, old);
}

@@ -681,7 +679,7 @@ }

* @since 0.1.4
* @version 1.0.0
* @version 1.0.4
*
* @return {Object}
*/
function regenerateObject(root, current, seen, retrieve, undry_paths, old) {
function regenerateObject(root, holder, current, seen, retrieve, undry_paths, old) {

@@ -694,3 +692,3 @@ var key;

if (!seen.get(current[key])) {
current[key] = regenerate(root, current[key], seen, retrieve, undry_paths, old);
current[key] = regenerate(root, current, current[key], seen, retrieve, undry_paths, old);
}

@@ -708,7 +706,7 @@ }

* @since 0.1.4
* @version 1.0.3
* @version 1.0.4
*
* @return {Mixed}
*/
function regenerate(root, current, seen, retrieve, undry_paths, old) {
function regenerate(root, holder, current, seen, retrieve, undry_paths, old) {

@@ -722,3 +720,3 @@ var temp;

if (current instanceof Array) {
return regenerateArray(root, current, seen, retrieve, undry_paths, old);
return regenerateArray(root, holder, current, seen, retrieve, undry_paths, old);
}

@@ -731,3 +729,15 @@

if (undry_paths.get(current)) {
if (temp = undry_paths.get(current)) {
if (typeof temp.undried != 'undefined') {
return temp.undried;
}
if (!holder) {
throw new Error('Unable to resolve recursive reference');
}
undry_paths.extra_pass.push([holder, temp]);
return temp;
return undry_paths.get(current).undried;

@@ -755,3 +765,3 @@ }

// (We have to create a new instance, because it's already been "seen")
temp = retrieve[current] = regenerate(root, new String(temp), seen, retrieve, undry_paths, old);
temp = retrieve[current] = regenerate(root, holder, new String(temp), seen, retrieve, undry_paths, old);
}

@@ -765,3 +775,3 @@

return regenerateObject(root, current, seen, retrieve, undry_paths, old);
return regenerateObject(root, holder, current, seen, retrieve, undry_paths, old);
}

@@ -993,3 +1003,3 @@

* @since 1.0.0
* @version 1.0.2
* @version 1.0.4
*

@@ -1006,5 +1016,8 @@ * @param {Object} value

result,
holder,
entry,
temp,
seen,
path,
key,
old = {};

@@ -1032,2 +1045,5 @@

// Maybe paths need another round of undrying
undry_paths.extra_pass = [];
// Iterate over all the values that require some kind of function to be revived

@@ -1039,3 +1055,3 @@ undry_paths.forEach(function eachEntry(entry, path) {

// Regenerate this replacement wrapper first
regenerate(result, entry, seen, retrieve, undry_paths, old);
regenerate(result, null, entry, seen, retrieve, undry_paths, old);

@@ -1059,4 +1075,17 @@ if (entry.unDryConstructor) {

for (var i = 0; i < undry_paths.extra_pass.length; i++) {
entry = undry_paths.extra_pass[i];
holder = entry[0];
temp = entry[1];
for (key in holder) {
if (holder[key] == temp) {
holder[key] = temp.undried;
break;
}
}
}
// Only now we can resolve paths
result = regenerate(result, result, seen, retrieve, undry_paths, old);
result = regenerate(result, result, result, seen, retrieve, undry_paths, old);

@@ -1063,0 +1092,0 @@ if (result.undried != null && result.dry) {

{
"name": "json-dry",
"description": "Don't repeat yourself, JSON: Add support for (circular) references, class instances, ...",
"version": "1.0.3",
"version": "1.0.4",
"author": "Jelle De Loecker <jelle@develry.be>",

@@ -6,0 +6,0 @@ "keywords": [

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc