{"_id":"json-stable-stringify-without-jsonify","_rev":"72102","name":"json-stable-stringify-without-jsonify","description":"deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results, with no public domain dependencies","dist-tags":{"latest":"1.0.1"},"maintainers":[{"name":"samn","email":"samneubardt@gmail.com"}],"time":{"modified":"2021-06-03T10:23:40.000Z","created":"2016-12-15T22:00:35.805Z","1.0.1":"2016-12-15T22:00:35.805Z"},"users":{},"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"repository":{"type":"git","url":"git://github.com/samn/json-stable-stringify.git"},"versions":{"1.0.1":{"name":"json-stable-stringify-without-jsonify","version":"1.0.1","description":"deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results, with no public domain dependencies","main":"index.js","dependencies":{},"devDependencies":{"tape":"~1.0.4"},"scripts":{"test":"tape test/*.js"},"testling":{"files":"test/*.js","browsers":["ie/8..latest","ff/5","ff/latest","chrome/15","chrome/latest","safari/latest","opera/latest"]},"repository":{"type":"git","url":"git://github.com/samn/json-stable-stringify.git"},"homepage":"https://github.com/samn/json-stable-stringify","keywords":["json","stringify","deterministic","hash","sort","stable"],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT","gitHead":"c0b3c36d976c54e31a814c492cd1c2557a4d3758","bugs":{"url":"https://github.com/samn/json-stable-stringify/issues"},"_id":"json-stable-stringify-without-jsonify@1.0.1","_shasum":"9db7b59496ad3f3cfef30a75142d2d930ad72651","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.1","_npmUser":{"name":"samn","email":"samneubardt@gmail.com"},"dist":{"shasum":"9db7b59496ad3f3cfef30a75142d2d930ad72651","size":4621,"noattachment":false,"key":"/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz"},"maintainers":[{"name":"samn","email":"samneubardt@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/json-stable-stringify-without-jsonify-1.0.1.tgz_1481839233500_0.5462748887948692"},"directories":{},"publish_time":1481839235805,"_cnpm_publish_time":1481839235805,"_hasShrinkwrap":false}},"readme":"# json-stable-stringify\n\nThis is the same as https://github.com/substack/json-stable-stringify but it doesn't depend on libraries without licenses (jsonify).\n\ndeterministic version of `JSON.stringify()` so you can get a consistent hash\nfrom stringified results\n\nYou can also pass in a custom comparison function.\n\n[![browser support](https://ci.testling.com/substack/json-stable-stringify.png)](https://ci.testling.com/substack/json-stable-stringify)\n\n[![build status](https://secure.travis-ci.org/substack/json-stable-stringify.png)](http://travis-ci.org/substack/json-stable-stringify)\n\n# example\n\n``` js\nvar stringify = require('json-stable-stringify');\nvar obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };\nconsole.log(stringify(obj));\n```\n\noutput:\n\n```\n{\"a\":3,\"b\":[{\"x\":4,\"y\":5,\"z\":6},7],\"c\":8}\n```\n\n# methods\n\n``` js\nvar stringify = require('json-stable-stringify')\n```\n\n## var str = stringify(obj, opts)\n\nReturn a deterministic stringified string `str` from the object `obj`.\n\n## options\n\n### cmp\n\nIf `opts` is given, you can supply an `opts.cmp` to have a custom comparison\nfunction for object keys. Your function `opts.cmp` is called with these\nparameters:\n\n``` js\nopts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue })\n```\n\nFor example, to sort on the object key names in reverse order you could write:\n\n``` js\nvar stringify = require('json-stable-stringify');\n\nvar obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };\nvar s = stringify(obj, function (a, b) {\n    return a.key < b.key ? 1 : -1;\n});\nconsole.log(s);\n```\n\nwhich results in the output string:\n\n```\n{\"c\":8,\"b\":[{\"z\":6,\"y\":5,\"x\":4},7],\"a\":3}\n```\n\nOr if you wanted to sort on the object values in reverse order, you could write:\n\n```\nvar stringify = require('json-stable-stringify');\n\nvar obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };\nvar s = stringify(obj, function (a, b) {\n    return a.value < b.value ? 1 : -1;\n});\nconsole.log(s);\n```\n\nwhich outputs:\n\n```\n{\"d\":6,\"c\":5,\"b\":[{\"z\":3,\"y\":2,\"x\":1},9],\"a\":10}\n```\n\n### space\n\nIf you specify `opts.space`, it will indent the output for pretty-printing.\nValid values are strings (e.g. `{space: \\t}`) or a number of spaces\n(`{space: 3}`).\n\nFor example:\n\n```js\nvar obj = { b: 1, a: { foo: 'bar', and: [1, 2, 3] } };\nvar s = stringify(obj, { space: '  ' });\nconsole.log(s);\n```\n\nwhich outputs:\n\n```\n{\n  \"a\": {\n    \"and\": [\n      1,\n      2,\n      3\n    ],\n    \"foo\": \"bar\"\n  },\n  \"b\": 1\n}\n```\n\n### replacer\n\nThe replacer parameter is a function `opts.replacer(key, value)` that behaves\nthe same as the replacer\n[from the core JSON object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_native_JSON#The_replacer_parameter).\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install json-stable-stringify\n```\n\n# license\n\nMIT\n","_attachments":{},"homepage":"https://github.com/samn/json-stable-stringify","bugs":{"url":"https://github.com/samn/json-stable-stringify/issues"},"license":"MIT"}