Nervously Practice Multithreading
Miss any of our Open RFC calls?Watch the recordings here! »

javascript-stringify

2.0.1 • Public • Published

JavaScript Stringify

NPM version NPM downloads Build status Test coverage

Stringify is to eval as JSON.stringify is to JSON.parse.

Installation

npm install javascript-stringify --save

Buy Me A Coffee

Usage

import { stringify } from "javascript-stringify";

The API is similar JSON.stringify:

  • value The value to convert to a string
  • replacer A function that alters the behavior of the stringification process
  • space A string or number that's used to insert white space into the output for readability purposes
  • options
    • maxDepth (number, default: 100) The maximum depth of values to stringify
    • maxValues (number, default: 100000) The maximum number of values to stringify
    • references (boolean, default: false) Restore circular/repeated references in the object (uses IIFE)
    • skipUndefinedProperties (boolean, default: false) Omits undefined properties instead of restoring as undefined

Examples

stringify({}); // "{}"
stringify(true); // "true"
stringify("foo"); // "'foo'"
 
stringify({ x: 5, y: 6 }); // "{x:5,y:6}"
stringify([1, 2, 3, "string"]); // "[1,2,3,'string']"
 
stringify({ a: { b: { c: 1 } } }, null, null, { maxDepth: 2 }); // "{a:{b:{}}}"
 
/**
 * Invalid key names are automatically stringified.
 */
 
stringify({ "some-key": 10 }); // "{'some-key':10}"
 
/**
 * Some object types and values can remain identical.
 */
 
stringify([/.+/gi, new Number(10), new Date()]); // "[/.+/gi,new Number(10),new Date(1406623295732)]"
 
/**
 * Unknown or circular references are removed.
 */
 
var obj = { x: 10 };
obj.circular = obj;
 
stringify(obj); // "{x:10}"
stringify(obj, null, null, { references: true }); // "(function(){var x={x:10};x.circular=x;return x;}())"
 
/**
 * Specify indentation - just like `JSON.stringify`.
 */
 
stringify({ a: 2 }, null, " "); // "{\n a: 2\n}"
stringify({ uno: 1, dos: 2 }, null, "\t"); // "{\n\tuno: 1,\n\tdos: 2\n}"
 
/**
 * Add custom replacer behaviour - like double quoted strings.
 */
 
stringify(["test", "string"], function(value, indent, stringify) {
  if (typeof value === "string") {
    return '"' + value.replace(/"/g, '\\"') + '"';
  }
 
  return stringify(value);
});
//=> '["test","string"]'

License

MIT

Install

npm i javascript-stringify

DownloadsWeekly Downloads

1,042,923

Version

2.0.1

License

MIT

Unpacked Size

143 kB

Total Files

27

Last publish

Collaborators

  • avatar