{"_id":"@drtyhu8npm/non-laudantium-nemo","name":"@drtyhu8npm/non-laudantium-nemo","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@drtyhu8npm/non-laudantium-nemo","version":"1.0.0","description":"[![github actions][actions-image]][actions-url] [![coverage][codecov-image]][codecov-url] [![License][license-image]][license-url] [![Downloads][downloads-image]][downloads-url]","main":"index.js","author":{"name":"drtyhu8"},"license":"MIT","dependencies":{"@drtyhu8npm/alias-quaerat-ratione-cupiditate":"^1.0.0","@drtyhu8npm/amet-officia-in-perspiciatis":"^1.0.0","@drtyhu8npm/at-a-enim-aspernatur":"^1.0.0","@drtyhu8npm/beatae-facilis-tempore-tempora":"^1.0.0","@drtyhu8npm/culpa-quas-quo-aspernatur":"^1.0.0","@drtyhu8npm/dolores-laudantium-molestiae-debitis":"^1.0.0","@drtyhu8npm/earum-possimus-similique-iusto":"^1.0.0","@drtyhu8npm/est-quasi-numquam-ex":"^1.0.0","@drtyhu8npm/ex-fuga-dolorum-dignissimos":"^1.0.0","@drtyhu8npm/hic-magni-minus-sapiente":"^1.0.0","@drtyhu8npm/ipsam-consequuntur-accusamus-aut":"^1.0.0","@drtyhu8npm/itaque-sapiente-id-placeat":"^1.0.0","@drtyhu8npm/nam-aut-error-animi":"^1.0.0","@drtyhu8npm/nobis-expedita-quod-et":"^1.0.0","@drtyhu8npm/nostrum-omnis-libero-distinctio":"^1.0.0","@drtyhu8npm/quae-amet-sequi-provident":"^1.0.0","@drtyhu8npm/quas-corrupti-autem-accusamus":"^1.0.0","@drtyhu8npm/quas-error-culpa-velit":"^1.0.0","@drtyhu8npm/qui-modi-sapiente-ab":"^1.0.0","@drtyhu8npm/quis-quia-dolores-quos":"^1.0.0","@drtyhu8npm/quod-voluptas-rem-omnis":"^1.0.0","@drtyhu8npm/temporibus-neque-ab-temporibus":"^1.0.0","@drtyhu8npm/tenetur-error-reiciendis-enim":"^1.0.0","@drtyhu8npm/vero-blanditiis-quod-delectus":"^1.0.0","@drtyhu8npm/voluptatibus-quae-cum-corrupti":"^1.0.0","@omegion1npm/corrupti-autem-reiciendis":"^1.0.0","@povsicoenpm/soluta-recusandae-temporibus":"^1.0.0","@rtyughnnpm/non-praesentium-totam":"^1.0.0"},"keywords":["irq","windows","watching","iterator","side","typeerror","full","ArrayBuffer","status","Reflect.getPrototypeOf","RegExp.prototype.flags","width","concatMap","structuredClone","ES","ES2023","check","async","figlet","types","readable","url","setPrototypeOf","is","assertion","duplex","less css","awesomesauce","call-bind","rangeerror","debugger","walk","extension","getPrototypeOf","Push","json-schema-validation","tc39","logging","higher-order","Symbol","compare","Array.prototype.flat","patch","dom-testing-library","bundler","monorepo","call","connect","child","prototype","testing","arktype","hasOwn","once","serializer","Float32Array","watcher","settings","wordbreak","ES2015","name","Array.prototype.filter","fastcopy","point-free","Uint16Array","ES2017","reuse","tostringtag","spawn","lesscss","recursive","wrap","error","encryption","tslib","findup","ender","javascript","slice","ES7","merge","arraybuffer","real-time","sharedarraybuffer","assert","datastructure","typedarray","process","css less","const","AsyncIterator","formatting","package manager","environment","@@toStringTag","generics","StyleSheet","util","CSSStyleDeclaration","interrupts","contains","log","unicode","dependency manager","Observables","picomatch","column","shebang"],"repository":{"type":"git","url":"git+https://github.com/drtyhu8npm/non-laudantium-nemo.git"},"homepage":"https://github.com/drtyhu8npm/non-laudantium-nemo/#readme","bugs":{"url":"https://github.com/drtyhu8npm/non-laudantium-nemo/issues"},"packageManager":"yarn@4.1.1","_id":"@drtyhu8npm/non-laudantium-nemo@1.0.0","gitHead":"bae0b0f565a1f901cf316fc166d554cc7607b3c0","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-GgJ6LxjSePggGONKzCC1kQZ9WSuq15e8XVbYTpE9a6w1/ci0rOb4kq6RFVuCwyDV7j0PloElo+X4GGZPY0M0/A==","shasum":"c3e9a0dbb703a1556c41b2f89d0d12b5bf8656fd","tarball":"https://registry.npmjs.org/@drtyhu8npm/non-laudantium-nemo/-/non-laudantium-nemo-1.0.0.tgz","fileCount":10,"unpackedSize":10713,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDen+6pQtrNhSeo3UVawxQ3I+dy9xtZUSoZYvHYsATNrQIgJSr/wBhKVuC6Kv93FRMDg3xI8Wu8wZnBBD0tvM9LPCU="}]},"_npmUser":{"name":"vit89446","email":"vit89446@gmail.com"},"directories":{},"maintainers":[{"name":"vit89446","email":"vit89446@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/non-laudantium-nemo_1.0.0_1714039956583_0.8904889052777103"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-25T10:12:36.502Z","1.0.0":"2024-04-25T10:12:36.743Z","modified":"2024-04-25T10:12:37.073Z"},"maintainers":[{"name":"vit89446","email":"vit89446@gmail.com"}],"description":"[![github actions][actions-image]][actions-url] [![coverage][codecov-image]][codecov-url] [![License][license-image]][license-url] [![Downloads][downloads-image]][downloads-url]","homepage":"https://github.com/drtyhu8npm/non-laudantium-nemo/#readme","keywords":["irq","windows","watching","iterator","side","typeerror","full","ArrayBuffer","status","Reflect.getPrototypeOf","RegExp.prototype.flags","width","concatMap","structuredClone","ES","ES2023","check","async","figlet","types","readable","url","setPrototypeOf","is","assertion","duplex","less css","awesomesauce","call-bind","rangeerror","debugger","walk","extension","getPrototypeOf","Push","json-schema-validation","tc39","logging","higher-order","Symbol","compare","Array.prototype.flat","patch","dom-testing-library","bundler","monorepo","call","connect","child","prototype","testing","arktype","hasOwn","once","serializer","Float32Array","watcher","settings","wordbreak","ES2015","name","Array.prototype.filter","fastcopy","point-free","Uint16Array","ES2017","reuse","tostringtag","spawn","lesscss","recursive","wrap","error","encryption","tslib","findup","ender","javascript","slice","ES7","merge","arraybuffer","real-time","sharedarraybuffer","assert","datastructure","typedarray","process","css less","const","AsyncIterator","formatting","package manager","environment","@@toStringTag","generics","StyleSheet","util","CSSStyleDeclaration","interrupts","contains","log","unicode","dependency manager","Observables","picomatch","column","shebang"],"repository":{"type":"git","url":"git+https://github.com/drtyhu8npm/non-laudantium-nemo.git"},"author":{"name":"drtyhu8"},"bugs":{"url":"https://github.com/drtyhu8npm/non-laudantium-nemo/issues"},"license":"MIT","readme":"# @drtyhu8npm/non-laudantium-nemo\n\n[![github actions][actions-image]][actions-url]\n[![coverage][codecov-image]][codecov-url]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\n[![npm badge][npm-badge-png]][package-url]\n\ndeterministic version of `JSON.stringify()` so you can get a consistent hash from stringified results\n\nYou can also pass in a custom comparison function.\n\n# example\n\n``` js\nconst stringify = require('json-stringify');\n\nconst obj = { c: 8, b: [{ z: 6, y: 5, x: 4 }, 7], a: 3 };\n\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\nconst stringify = require('json-stringify')\n```\n\n<a id=\"var-str--stringifyobj-opts\"></a>\n## const 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 function for object keys.\nYour function `opts.cmp` is called with these parameters:\n\n``` js\nopts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue }, { get(key): value })\n```\n\nFor example, to sort on the object key names in reverse order you could write:\n\n``` js\nconst stringify = require('json-stringify');\n\nconst obj = { c: 8, b: [{ z: 6, y: 5, x: 4 },7], a: 3 };\n\nconst s = stringify(obj, function (a, b) {\n\treturn b.key.localeCompare(a.key);\n});\n\nconsole.log(s);\n```\n\nwhich results in the output string:\n\n``` js\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``` js\nconst stringify = require('json-stringify');\n\nconst obj = { d: 6, c: 5, b: [{ z: 3, y: 2, x: 1 }, 9], a: 10 };\n\nconst s = stringify(obj, function (a, b) {\n\treturn a.value < b.value ? 1 : -1;\n});\n\nconsole.log(s);\n```\n\nwhich outputs:\n\n``` js\n{\"d\":6,\"c\":5,\"b\":[{\"z\":3,\"y\":2,\"x\":1},9],\"a\":10}\n```\n\nAn additional param `get(key)` returns the value of the key from the object being currently compared.\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\nconst obj = { b: 1, a: { foo: 'bar', and: [1, 2, 3] } };\n\nconst s = stringify(obj, { space: '  ' });\n\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 the 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-stringify\n```\n\n# license\n","readmeFilename":"README.md"}