node package manager

circular

Tiny utility to safely stringify objects with circular references

Circular

Tiny utility to safely stringify objects with circular references.

Usage

Replace all circular references with the string [Circular];

var circular = require('circular');
var obj = {}; var child = {parent: obj}; obj.child = child;
var str = JSON.stringify(obj, circular());
// => {"child":{"parent":"[Circular]"}} 

If you prefer you can pass an alternative string to use:

var str = JSON.stringify(obj, circular('#ref'));

Or a function that returns a string:

function ref(value){return '' + value};
var str = JSON.stringify(obj, circular(ref));

As of version 1.0.4 you can also pass an additional boolean that will convert function references to strings, useful for converting javascript modules to couchdb design documents.

var str = JSON.stringify(obj, circular(null, true));

License

Everything is MIT. Read the license if you feel inclined.