{"_id":"@3imed-jaberi/deepfreeze","_rev":"2-93b50a1122bc75cb527ee149ddd12024","name":"@3imed-jaberi/deepfreeze","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@3imed-jaberi/deepfreeze","version":"1.0.0","description":"The modern and amiable deep freeze, works with Map and Set 🥶","main":"index.js","repository":{"type":"git","url":"git+https://github.com/3imed-jaberi/deepfreeze.git"},"scripts":{"lint":"eslint .","pretest":"npm run lint","test":"mocha index.spec.js --exit","precoverage":"rimraf .nyc_output coverage","coverage":"nyc npm run test","ci":"npm run coverage"},"keywords":["freeze","deep-freeze","objects","arrays","functions","set","map","primitives","pure-freeze","deep-clone","util"],"author":{"name":"imed jaberi","email":"imed-jaberi@outlook.com","url":"https://www.3imed-jaberi.com"},"license":"MIT","dependencies":{"lodash.clonedeep":"^4.5.0"},"devDependencies":{"chai":"^4.3.4","eslint":"^7.24.0","eslint-config-standard":"^16.0.2","eslint-plugin-import":"^2.22.1","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-standard":"^5.0.0","mocha":"^8.3.2","nyc":"^15.1.0","rimraf":"^3.0.2"},"enignes":{"node":">= 10"},"bugs":{"url":"https://github.com/3imed-jaberi/deepfreeze/issues"},"homepage":"https://github.com/3imed-jaberi/deepfreeze#readme","gitHead":"9acd163d4f9aab276a81cf1a410bd3b3fd8cf9bb","_id":"@3imed-jaberi/deepfreeze@1.0.0","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-JkpChegk5FLF0oz8grEUuKvT8/V5m+EEov+J386oiSjTKcKwndf5rv06FPF48zkMkxWjltTpF0ck2BthBWOERA==","shasum":"8792f9090ba37680d0f4ab2ec429999fbe11ff3a","tarball":"https://registry.npmjs.org/@3imed-jaberi/deepfreeze/-/deepfreeze-1.0.0.tgz","fileCount":5,"unpackedSize":8893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgd6KPCRA9TVsSAnZWagAA9xcP/ioz0yMlr2uZgVJBPka2\nnN0/NqbEWVs4TY9TXj7boeUICH0rXCuD10Jp23NeK38PAi7bGsQMQ5i8xp02\nvNRew5m5sQRtNjorBpziloq6Yy39BNM2tn+T8yp3tgXxZoTGiYKVG+ERlUmE\nWKgriGLaH/7rt2HW1kbixLFswEq+NCtlvqkENsAiY55mu/p9Zv+BRp89fVnw\nKDDekLSy4oq4P6oGBxvQl7CxT7S88SQPezafvv/vZq+DzZnobfLDhJZZGGeH\ncZpIp0HT3q3ZxHZqM7j5X6YXQm5RzwrIdBwAvfrrsNUGSctFdYVgWuGi3Tm2\nPhC9vJaqUNIaiCi7aneDkxjkJRAYnh3SHO7LGQka+WYkRFGZKaIg1BA+Z31e\nhRK1QldOJTvdzmYyYP84rXSeX8g5Zoh7B7JHRkPO5/P/72hrAj5Id+7oDncA\nsY+35dKMQiwG2t2n6hAuXbDdXqMzicyVPXTjK7u7HkqmeQcFe7I4hOFbKkbh\n0yWG/064il/x9pprlv0z5DwAbRiwU8Lgu/2H9oemmgSP1P06flz0mesOexdG\nXul08RZAUDVkXUqmA5g6aQ6VxPwsnLSFIM8RVBZR3SNSnatRWDifwEExW/D7\nbLlnzlY3s0RSTUiUParch1mYiazzY+3QV++LpTeKBTbeIv1WKbpi0TnIKTG8\nQMq/\r\n=x7FZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA50vC3eyPIXiAqavcoyphClA4IA+9XX+m17FTNcaGi+AiAco8W5GqMoj6tCaLLHDuu5OKKtD22oPa6m3LpUGAeGkQ=="}]},"_npmUser":{"name":"3imed-jaberi","email":"imed_jebari@hotmail.fr"},"directories":{},"maintainers":[{"name":"3imed-jaberi","email":"imed_jebari@hotmail.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/deepfreeze_1.0.0_1618453134603_0.022701888073421328"},"_hasShrinkwrap":false},"1.0.1":{"name":"@3imed-jaberi/deepfreeze","version":"1.0.1","description":"The modern and amiable deep freeze, works with Map and Set 🥶","main":"index.js","repository":{"type":"git","url":"git+https://github.com/3imed-jaberi/deepfreeze.git"},"scripts":{"lint":"eslint .","pretest":"npm run lint","test":"mocha index.spec.js --exit","precoverage":"rimraf .nyc_output coverage","coverage":"nyc npm run test","ci":"npm run coverage"},"keywords":["freeze","deep-freeze","objects","arrays","functions","set","map","primitives","pure-freeze","deep-clone","util"],"author":{"name":"imed jaberi","email":"imed-jaberi@outlook.com","url":"https://www.3imed-jaberi.com"},"license":"MIT","dependencies":{"lodash.clonedeep":"^4.5.0"},"devDependencies":{"chai":"^4.3.4","eslint":"^7.24.0","eslint-config-standard":"^16.0.2","eslint-plugin-import":"^2.22.1","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-standard":"^5.0.0","mocha":"^8.3.2","nyc":"^15.1.0","rimraf":"^3.0.2"},"enignes":{"node":">= 10"},"bugs":{"url":"https://github.com/3imed-jaberi/deepfreeze/issues"},"homepage":"https://github.com/3imed-jaberi/deepfreeze#readme","gitHead":"6ecad32cd6694e6b81e0453da8d43727bd67dc45","_id":"@3imed-jaberi/deepfreeze@1.0.1","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-WpXu4DEKZjrY+eA+44MJB19ENUpBAA9PfbWbJz56mi8fu/wr9Cm1AWYsiI8ZfS5qRe/gQWEJu7MLMOXzqAuCYA==","shasum":"8b9f88ecaf7f6cd7d3e9acbd31db686a8381aed3","tarball":"https://registry.npmjs.org/@3imed-jaberi/deepfreeze/-/deepfreeze-1.0.1.tgz","fileCount":5,"unpackedSize":8921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgd6RzCRA9TVsSAnZWagAAdsEP/jI3Z60WTn11aHmR5hxb\nLHM29DkoRK46BmtuQZ6EC0sgueOqhE4FB4fpCZB0Gu2a80gxlmAOO/i1hbZK\nN2Rjl4hK0iidz8j2k/fkDDNytOvWQxN7VOlr73EgVTa2ICzAcmRuBg31ZcN4\npQgOtQ2oCQiDgGtwn80yil6Jr3UJ7LVjqy9SliiNF5oqa9pi6X9Mo8kxGUwz\n68GfFfuRsfrufNTTJZ/sCpIgAJtyHJIE3EpwkeYR7YGEu7yol4n+r7Yavn03\nDvMiQPbj5VH5M/8hGIpHASQx9/UVFHiVmtjsTz7b5nj0IMIY4exsz7rt+0v/\n03bg49GrHRAI1aR+0RvRKihMZdywqn62t9JhSK4RrV89pj4qJ6eEmRaGCenx\nOTa5M3rb4ZE6ZD3XOmFCN4wrjOn0/8OJ/S/XqVlV2SS1HxsahsVSeosPoh/Y\nN4V/XnAR6hS6oy4sP1qklkMtkUzMMB/nXAw7d838wMmkQKD2AwsDrZFR7EpM\n2h/FX+20jvqW4EqkEaYhNnZVq3i84K2CaYnfRcqBy8Qkt0nSmb3Vrd5AFeYN\nazK2IjoUKvqzjm6tX2qQ9iLeGZ+zT8EzUbuzafgeFsoJr3c8koFM/Yhz6XgO\n2n2dzEu4KNkKOgzTDjhuNX+/ckqedSsmdkWi0zsz269Asp0K3I769kNZAFSQ\nE7Qw\r\n=XfqM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHYOimiSIlvyEaFK/23rMsEoJufFJXiRYCw/8PTGTX/AiEAi7pb9ymPUfDwLMxs0zGkngTq4Ldy4Ys/fx47ywzdwbk="}]},"_npmUser":{"name":"3imed-jaberi","email":"imed_jebari@hotmail.fr"},"directories":{},"maintainers":[{"name":"3imed-jaberi","email":"imed_jebari@hotmail.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/deepfreeze_1.0.1_1618453619241_0.9175810107206321"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-15T02:18:54.532Z","1.0.0":"2021-04-15T02:18:54.772Z","modified":"2022-04-04T10:44:52.826Z","1.0.1":"2021-04-15T02:26:59.388Z"},"maintainers":[{"name":"3imed-jaberi","email":"imed_jebari@hotmail.fr"}],"description":"The modern and amiable deep freeze, works with Map and Set 🥶","homepage":"https://github.com/3imed-jaberi/deepfreeze#readme","keywords":["freeze","deep-freeze","objects","arrays","functions","set","map","primitives","pure-freeze","deep-clone","util"],"repository":{"type":"git","url":"git+https://github.com/3imed-jaberi/deepfreeze.git"},"author":{"name":"imed jaberi","email":"imed-jaberi@outlook.com","url":"https://www.3imed-jaberi.com"},"bugs":{"url":"https://github.com/3imed-jaberi/deepfreeze/issues"},"license":"MIT","readme":"# @3imed-jaberi/deepfreeze\r\n\r\n[![Build Status][travis-img]][travis-url]\r\n[![Coverage Status][coverage-img]][coverage-url]\r\n[![NPM version][npm-badge]][npm-url]\r\n[![License][license-badge]][license-url]\r\n![Code Size][code-size-badge]\r\n\r\n<!-- ***************** -->\r\n\r\n[travis-img]: https://travis-ci.com/3imed-jaberi/deepfreeze.svg?branch=master\r\n[travis-url]: https://travis-ci.com/3imed-jaberi/deepfreeze\r\n[coverage-img]: https://coveralls.io/repos/github/3imed-jaberi/deepfreeze/badge.svg?branch=master\r\n[coverage-url]: https://coveralls.io/github/3imed-jaberi/deepfreeze?branch=master\r\n[npm-badge]: https://img.shields.io/npm/v/@3imed-jaberi/deepfreeze.svg?style=flat\r\n[npm-url]: https://www.npmjs.com/package/@3imed-jaberi/deepfreeze\r\n[license-badge]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square\r\n[license-url]: https://github.com/3imed-jaberi/deepfreeze/blob/master/LICENSE\r\n[code-size-badge]: https://img.shields.io/github/languages/code-size/3imed-jaberi/deepfreeze\r\n\r\n<!-- ***************** -->\r\n\r\n### The modern and amiable deep freeze, works with Map and Set 🥶\r\n\r\n## `Features`\r\n\r\n- 💅🏻 Inspired by many solutions in a modern way.\r\n- 🌪 Recursively `Object.freeze()` for objects, functions and arrays.\r\n- 🥞 Support for `Map` and `Set`.\r\n- 💉 Add `.isDeepFrozen()` method for each frozen object.\r\n- 🎯 Support Pure Deep Freeze through deep clone.\r\n- 🧊 Handle primitives types natively.\r\n\r\n## `Installation`\r\n\r\n```bash\r\n# npm\r\n$ npm install @3imed-jaberi/deepfreeze\r\n# yarn\r\n$ yarn add @3imed-jaberi/deepfreeze\r\n```\r\n\r\n## `Usage`\r\n\r\nThis is a practical example of how to use.\r\n\r\n```javascript\r\n\"use strict\";\r\n\r\nconst deepfreeze = require(\"@3imed-jaberi/deepfreeze\");\r\n\r\nconst object = {\r\n  someBoolean: true,\r\n  someNumber: 10,\r\n  someString: \"hello!\",\r\n  someObject: { foo: \"bar\", someNestedObject: { nested: \"inObject\" } },\r\n  someArray: [false, 20, \"bye!\", { nested: \"inArray\" }],\r\n  someMap: new Map([\"item1\", \"item2\"]),\r\n  someSet: new Set([\"item1\", \"item2\"]),\r\n};\r\n\r\nconst frozenObject = deepfreeze(object);\r\n\r\nObject.isFrozen(frozenObject); // true\r\nObject.isFrozen(frozenObject.someBoolean); // true\r\nObject.isFrozen(frozenObject.someNumber); // true\r\nObject.isFrozen(frozenObject.someString); // true\r\nObject.isFrozen(frozenObject.someObject); // true\r\nObject.isFrozen(frozenObject.someObject.foo); // true\r\nObject.isFrozen(frozenObject.someObject.someNestedObject); // true\r\nObject.isFrozen(frozenObject.someObject.someNestedObject.nested); // true\r\nObject.isFrozen(frozenObject.someArray); // true\r\nfrozenObject.someArray.forEach((value) => {\r\n  Object.isFrozen(value); // true\r\n});\r\nfrozenObject.someMap.clear(); // Error: Map is read-only.\r\nfrozenObject.someSet.clear(); // Error: Set is read-only.\r\n```\r\n\r\n## `API`\r\n\r\nYou can pass some arguments to the freeze method;\r\n\r\n- `object` &mdash; (Object) object to deep freeze.\r\n- `options.isProd` &mdash; (Boolean) ignore freezing in production (for better performance) (`default to false`).\r\n- `options.pureFreeze` &mdash; (Boolean) use `lodash.cloneDeep` to create a copy and use it dealing the freezing process (`default to false`).\r\n\r\nIf the passed object handled by our method, a method called `isDeepFrozen` will be inserted as property to the object.\r\n\r\n#### License\r\n\r\n---\r\n\r\n[MIT](LICENSE) &copy; [Imed Jaberi](https://github.com/3imed-jaberi)\r\n","readmeFilename":"README.md"}