Sha256: a4205fb110e21b4125cddfa5b94f1ea51c1a73e1d939d8c9f302b820a275c902

Contents?: true

Size: 910 Bytes

Versions: 46

Compression:

Stored size: 910 Bytes

Contents

"use strict";

var compact   = require("../array/#/compact")
  , isObject  = require("../object/is-object")
  , toArray   = require("../object/to-array")
  , isArray   = Array.isArray
  , stringify = JSON.stringify;

module.exports = function self(value /*, replacer, space*/) {
	var replacer = arguments[1], space = arguments[2];
	try {
		return stringify(value, replacer, space);
	} catch (e) {
		if (!isObject(value)) return null;
		if (typeof value.toJSON === "function") return null;
		if (isArray(value)) {
			return (
				"[" +
				compact.call(
					value.map(function (item) {
						return self(item, replacer, space);
					})
				) +
				"]"
			);
		}
		return (
			"{" +
			compact
				.call(
					toArray(value, function (item, key) {
						item = self(item, replacer, space);
						if (!item) return null;
						return stringify(key) + ":" + item;
					})
				)
				.join(",") +
			"}"
		);
	}
};

Version data entries

46 entries across 46 versions & 3 rubygems

Version Path
govuk_publishing_components-18.0.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.21.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.20.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.19.1 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.19.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.18.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.17.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.16.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.15.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.14.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.13.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.12.2 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.12.1 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.12.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.11.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.10.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.9.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.8.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.7.0 node_modules/es5-ext/json/safe-stringify.js
govuk_publishing_components-17.6.1 node_modules/es5-ext/json/safe-stringify.js