{"_id":"@connected-home/redux-persist-transform-immutable","_rev":"16-033ccb6c61c29fb67b08d15a3e6fb3e3","name":"@connected-home/redux-persist-transform-immutable","dist-tags":{"latest":"6.1.1"},"versions":{"6.0.0":{"name":"@connected-home/redux-persist-transform-immutable","version":"6.0.0","keywords":["redux","redux-persist","redux-persist-transform","compression"],"author":{"name":"ConnectedHomes"},"license":"MIT","_id":"@connected-home/redux-persist-transform-immutable@6.0.0","maintainers":[{"name":"beavis07","email":"peterbevan.dev@gmail.com"},{"name":"bgo2","email":"gorny.bart@gmail.com"},{"name":"jamiedixon","email":"npm@jamie-dixon.co.uk"},{"name":"lithin","email":"doubkova.anna@gmail.com"},{"name":"sandfox","email":"james.butler@sandfox.co.uk"}],"homepage":"https://github.com/ConnectedHomes/redux-persist-transform-immutable","bugs":{"url":"https://github.com/ConnectedHomes/redux-persist-transform-immutable/issues"},"dist":{"shasum":"feb66d20a6aecb2e1143387307e2fb9ddcc21eea","tarball":"https://registry.npmjs.org/@connected-home/redux-persist-transform-immutable/-/redux-persist-transform-immutable-6.0.0.tgz","fileCount":4,"integrity":"sha512-ICkxoOp+AXvw+PuX7IVs19N5h2fYQZe1P4D4A0cyBjWGrVXRl6iDh3QQx747M3tVMdP5piugcqQjB43Gqgj6hw==","signatures":[{"sig":"MEUCIB1mBqN2QycE7MSyWrBmKKnbvSRh7ylMnyUh7iuaDQeSAiEA0jkAKznZiHHxu/Zut7gaBzNM0HEYkGAJOMCxvMcxP4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmSeGCRA9TVsSAnZWagAA1gQP+wbGJ44mBWb/eywFX4nb\njCqnpLY2Vz4kU8MZwl5+m5zFvAijGL8mi50WeOj4DqRFrGu+b5d8RmZS9mhN\nDlZP8JnujgBHIUYyqP0rs6uTdW7761xEkDX5G8r/CvozIBDotokwzk7XzLFO\nKhGQ3qjb/sgJgTMZmrls+3Ko262JNQzDcIr7Aa+6Fybcm07cyvQ5n4UfnP1n\n5/J9xLSBKONPp2FcCniVIiyfGqppVblpk2wA8I8qn9jj2zF7Nx6dt8q2yn36\n0milyeTWpJF+ozl9QbPfTRVVVSNglq5CvmblMREcb2LlInwQgFOxN13YAVcH\n/scp6exKiQSjVOI+/dRj0nvHIGW+CI/m5YuP4w5WY45l3r0unj2sclTRzjwP\nbmFTyfTV5vyXMbf0Mp5ueDoIvI4XAsnp9nwmSQ5GwbGThHhqmVpsdiBTV25B\nAuVR3USGmt3EYgSVTefEEII7jTJuAkk+6wc/LzudPt/3prcepqineJIp8awV\nfRjwhF3vdh4Zx6ONbLMwLFRPaCNLGFZAgzRbcnftSsqSzZfErTtZQG6jFP3m\n4v7quvU+bSRaTZNIkda7io9yMWb0+kqXR8caE/C0B2xhn/wcSUVpDl+cLc3d\nYiTHPVu++GaLqn0FMykfqi8hY1HlYxSzCsGpRSlfNxqk0CKlZjoQfVs9zDf5\nEu1U\r\n=wPw4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"614eab6e7f70e224c7b0803a060fc02f84d3bfcb","scripts":{"test":"echo \"no test specified\" && exit 0"},"_npmUser":{"name":"beavis07","email":"peterbevan.dev@gmail.com"},"repository":{"url":"git+https://github.com/ConnectedHomes/redux-persist-transform-immutable.git","type":"git"},"_npmVersion":"6.2.0","description":"immutable.js transform for redux-persist","directories":{},"_nodeVersion":"10.8.0","dependencies":{"remotedev-serialize":"^0.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"immutable":">= 3","redux-persist":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/redux-persist-transform-immutable_6.0.0_1536763781674_0.35503152197286414","host":"s3://npm-registry-packages"}},"6.1.0":{"name":"@connected-home/redux-persist-transform-immutable","version":"6.1.0","keywords":["redux","redux-persist","redux-persist-transform","compression"],"author":{"name":"ConnectedHomes"},"license":"MIT","_id":"@connected-home/redux-persist-transform-immutable@6.1.0","maintainers":[{"name":"beavis07","email":"peterbevan.dev@gmail.com"},{"name":"bgo2","email":"gorny.bart@gmail.com"},{"name":"jamiedixon","email":"npm@jamie-dixon.co.uk"},{"name":"lithin","email":"doubkova.anna@gmail.com"},{"name":"sandfox","email":"james.butler@sandfox.co.uk"}],"homepage":"https://github.com/ConnectedHomes/redux-persist-transform-immutable","bugs":{"url":"https://github.com/ConnectedHomes/redux-persist-transform-immutable/issues"},"dist":{"shasum":"9846fc51b50eead3c4ac940aeefe734d428db6df","tarball":"https://registry.npmjs.org/@connected-home/redux-persist-transform-immutable/-/redux-persist-transform-immutable-6.1.0.tgz","fileCount":4,"integrity":"sha512-avCevCbQUVkfDQC6Gs9gEun6nIY0QVKQ0P1YDKuKgCi5rrqWnhbEdtNEwiNg2kPBnlIQg1jlQAM6EA0t9AXZgQ==","signatures":[{"sig":"MEQCICKakq53Z3/DAS3LIaslGxcPoCweY22ZCko4Yc4Hiyk7AiBhq4mANz4sI0oUrZzKx6TqtDsA6LVu7QvNTjqmAb9glg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJboyFqCRA9TVsSAnZWagAA26EQAKFXQd6T60M426v5Wo8q\nqPiHROQPPGjurjFkL+JLmMOZfgkehKvP7rsjkyDoX62lWoaTmoNw55FZa4Vy\nkLgwPw/XYISo1kzFIHuLJunVrg1tIyHvxql5p0theqfbXO+MPOYEv/2KyF6c\npEplIrEjOKC/tZUJdY/6vFSRDhMtq9BTTJ8FWFPWrTo1N35bIzibN4VT1ghX\nEMl9eb9pbpi/Lfb2sBWrfpkOinrvc8x5mUPwhF50kF0u6/lQDli3TQH215qX\nZj5nBNTM8/xjrGzJLUskatAG0EEk8Z2xMscKJI73vycQR8DZ/U7PPNVM7erZ\nBla1E0YCXMPBbjf1aBdouMLccevCCP/ArDGPjfOmlTeVieXJf9nLzfPwfbCS\n2hFbaI0qtSFiJCJWn9POBtEbH9zNrlSoRK8m1aqTdRrO8d7E7yijAFSf2W3v\nDyuC6cUs5YXzfc/q1LRMBc30MeMDLSDrI2hdvnyO2Ps1616NpXr6PvSwx3bW\neYYFUrzVyQCobHPLddFQp715gGtOTGLBDs1HakZIdqlXywgnynrO0OyLDvGo\nmkhS4YVdQMAcyXmVIirJVd2lEuURAHsrT9cnJn1SKwMJplEkk5aQ8Qivz4b+\n0LhmJkSMoq+YKi4CVTHpVQ+LC21gOJXe87z7oFFze2gCI3ZLMCZjT8OueL1n\nHGyh\r\n=cXW/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1864bce42c73e9df02c308fdb9b91dac9b29e73f","scripts":{"test":"echo \"no test specified\" && exit 0"},"_npmUser":{"name":"beavis07","email":"peterbevan.dev@gmail.com"},"repository":{"url":"git+https://github.com/ConnectedHomes/redux-persist-transform-immutable.git","type":"git"},"_npmVersion":"6.2.0","description":"immutable.js transform for redux-persist","directories":{},"_nodeVersion":"10.8.0","dependencies":{"remotedev-serialize":"^0.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"immutable":">= 3","redux-persist":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/redux-persist-transform-immutable_6.1.0_1537417577536_0.2670113921959725","host":"s3://npm-registry-packages"}},"6.1.1":{"name":"@connected-home/redux-persist-transform-immutable","version":"6.1.1","keywords":["redux","redux-persist","redux-persist-transform","compression"],"author":{"name":"ConnectedHomes"},"license":"MIT","_id":"@connected-home/redux-persist-transform-immutable@6.1.1","maintainers":[{"name":"beavis07","email":"peterbevan.dev@gmail.com"},{"name":"bgo2","email":"gorny.bart@gmail.com"},{"name":"jamiedixon","email":"npm@jamie-dixon.co.uk"},{"name":"lithin","email":"doubkova.anna@gmail.com"},{"name":"sandfox","email":"james.butler@sandfox.co.uk"}],"homepage":"https://github.com/ConnectedHomes/redux-persist-transform-immutable","bugs":{"url":"https://github.com/ConnectedHomes/redux-persist-transform-immutable/issues"},"dist":{"shasum":"4ed661d7564b8d46f375d27fe182cde7dbe9f5ec","tarball":"https://registry.npmjs.org/@connected-home/redux-persist-transform-immutable/-/redux-persist-transform-immutable-6.1.1.tgz","fileCount":4,"integrity":"sha512-5JYQ5YAlLn8uBWnAK+0zL8LxACo3G/qPAhfnMZNZ9Rw8eHk+XiDFKNX1Ufl/rkgB5wtblo7qMfLXjnuJIpiNyw==","signatures":[{"sig":"MEQCIGBaEiQz8FpgJlKSkJNv0PAa0Faku2Rn89YPu+Cvjfv9AiBL4FsEkehZYwtITqcEabjtwicLiO5VySOfhiiLQyl5Uw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJboyn3CRA9TVsSAnZWagAAaOYP/3h+yVrXgryV3uX12lV2\n+tGd840PDz8XewSBJOiHTVSbI3NyGb9MCAmUPtA/jVKlYmw+TS/oWocfn9Ua\n6iKYMvtIfnvO/A9LGivnACn3rut2CPRxAzEUY9a2BTWyRsG+U0k0BPge5QBA\nVmsiS/6uGrT0arCZibnHXoPU7ufIdrDwiKHXh7p2VmDayAsZGnaAN22f7/Hw\niLdpVjeJyoC5o/lF4/e6mKKJaMhApSg+Mzl87ouILKG3y6X0ulRpn6P8FyGY\ntPJfdPoIThqbDVSe7ekOf6njErKJ3Q1z7di2Y07Wo3liv2sdYmj7+x+cDehW\nz8vMK+rUjsckreWB4wZOfkgtQOu4MaVdpj3Nl4D9r0fDRuHEjMgoxy3wLvEk\nvWtfZ/QpbBHvPKbSzEZHwQ+llHy0HGasdCS41rwU/saShMm/EqwQiFp+ELSf\nUQI6xG0d6+xQPQVIIFTM/geDR6dvGUHfbFZKDwWHe1jt4FWXN3arRKgnA2d9\n+gusFA6xAHX6bcNw2lMyZJ5Hl4Yb/0x1XLb6Ow2xxQ6FzNqH4d+Fvyy1+/aX\nM2it2G1Pj2hL7hy2vDvnmmW1LncgvGTqYuC4oZGEdAo+puaU+vQjDlCF9gE5\nekXAmTcM8p5fBtsTJkYLsrzHEdwcYFzGYl/UumnHVpjvdvOGXK9VoEduvCkA\nh64j\r\n=7VNV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e95f8f038191aae55a6fe6639e048aa4dbf3d1dc","scripts":{"test":"echo \"no test specified\" && exit 0"},"_npmUser":{"name":"beavis07","email":"peterbevan.dev@gmail.com"},"repository":{"url":"git+https://github.com/ConnectedHomes/redux-persist-transform-immutable.git","type":"git"},"_npmVersion":"6.2.0","description":"immutable.js transform for redux-persist","directories":{},"_nodeVersion":"10.8.0","dependencies":{"remotedev-serialize":"^0.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"immutable":">= 3","@connected-home/redux-persist":"^6.0.1"},"_npmOperationalInternal":{"tmp":"tmp/redux-persist-transform-immutable_6.1.1_1537419766641_0.38733550514446136","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-09-12T14:49:41.477Z","modified":"2025-04-25T12:37:20.734Z","6.0.0":"2018-09-12T14:49:41.786Z","6.1.0":"2018-09-20T04:26:17.652Z","6.1.1":"2018-09-20T05:02:46.794Z"},"bugs":{"url":"https://github.com/ConnectedHomes/redux-persist-transform-immutable/issues"},"author":{"name":"ConnectedHomes"},"license":"MIT","homepage":"https://github.com/ConnectedHomes/redux-persist-transform-immutable","keywords":["redux","redux-persist","redux-persist-transform","compression"],"repository":{"url":"git+https://github.com/ConnectedHomes/redux-persist-transform-immutable.git","type":"git"},"description":"immutable.js transform for redux-persist","maintainers":[{"email":"npm.xu234@sndfx.net","name":"sandfox"},{"email":"dominic.thomas@hivehome.com","name":"domthom"},{"email":"bvic23@gmail.com","name":"bvic23"},{"email":"christopher.goodchild@centrica.com","name":"christopher.goodchild"}],"readme":"# Redux Persist Transform Immutable\nAdd immutable sub-reducer support to redux-persist.\n\n**NOTE** this handles immutable state on a per-reducer basis. If your top level state is an immutable map, this module will not work.\n\n## Breaking Change\nv5 changes from `transitjs` to `remotedev-serialize`. For existing projects that upgrade to v5, all persisted data will be lost upon the initial persist. **note** It is possible to write an upgrade via a custom transform that supports both formats - if you do write one please PR!\n\n### Usage with Redux Persist\n```js\nimport { createStore, combineReducers } from 'redux'\nimport { persistStore, persistReducer } from 'redux-persist'\nimport immutableTransform from 'redux-persist-transform-immutable'\n\nconst persistConfig = {\n  transforms: [immutableTransform()],\n  key: 'root',\n  storage\n}\n\nconst reducer = combineReducers(reducers)\nconst persistedReducer = persistReducer(persistConfig, reducer)\nconst store = createStore(persistedReducer)\n\npersistStore(store)\n```\n\n#### Config\nFor config, please refer to [redux-persist's docs](https://github.com/rt2zz/redux-persist/blob/master/docs/api.md#type-persistconfig).\n\n### Usage with Records\nBy default, immutable [`Record`s](https://facebook.github.io/immutable-js/docs/#/Record) will be persisted and restored as `Map`s, because the library has no way of knowing what your `Record` constructor looks like. To change this behavior and allow a `Record` to be persisted and restored as a `Record` instance, you'll need to do two things:\n\n1. Add a name attribute to your record (this is the second argument to a `Record`'s constructor).\n2. Pass your `Record` constructor to the transformer's `withRecords()` function to generate a transformer capable of serializing and deserializing the record.\n\nMinimal example:\n```js\nimport { compose } from 'redux'\nimport { persistStore, autoRehydrate } from 'redux-persist'\nimport immutableTransform from 'redux-persist-transform-immutable'\n\nconst reducer = combineReducers(reducers)\nconst store = compose(autoRehydrate(), createStore)(reducer)\n\nconst MyRecord = Record({\n  foo: 'null'\n}, 'MyRecord') // <- Be sure to add a name field to your record\n\npersistStore(\n  store,\n  {\n    transforms: [immutableTransform({records: [MyRecord]})]\n  }\n)\n\n```\n\n### Avoiding Unnecessary Serialization\n\nBy default, `redux-persist-immutable-transform` will serialize and deserialize *all* passed objects using `transit-immutable-js`. If you are concerned about performance, you can either whitelist or blacklist reducer that you know are not immutable.\n\nExample state object:\n\n```js\nstate = {\n  username: 'john',\n  imageUri: 'images/profilePic.png',\n  friends: Immutable.List([ ... ])\n}\n```\n\nSet up the transformer to ignore the string-based reducer keys:\n\n```js\npersistStore(store, {\n  transforms: [immutableTransform({\n    blacklist: ['username', 'imageUri']\n  })]\n})\n\n/* OR */\n\npersistStore(store, {\n  transforms: [immutableTransform({\n    whitelist: ['friends']\n  })]\n})\n```\n","readmeFilename":"README.md"}