{"_id":"@artkravchenko/redux-persist-transform-immutable","_rev":"3-37dfe7dc9ff74d59be454594c45e4482","name":"@artkravchenko/redux-persist-transform-immutable","dist-tags":{"latest":"5.0.2"},"versions":{"5.0.0":{"name":"@artkravchenko/redux-persist-transform-immutable","version":"5.0.0","description":"immutable.js transform for redux-persist","main":"index.js","scripts":{"test":"echo \"no test specified\" && exit 0"},"dependencies":{"@artkravchenko/remotedev-serialize":"^0.1.9"},"peerDependencies":{"redux-persist":"^4.0.0","immutable":">= 3"},"repository":{"type":"git","url":"https://github.com/artkravchenko/redux-persist-transform-immutable.git"},"keywords":["redux","redux-persist","redux-persist-transform","compression"],"homepage":"https://github.com/artkravchenko/redux-persist-transform-immutable","author":{"name":"rt2zz","email":"zack@root-two.com"},"license":"MIT","_id":"@artkravchenko/redux-persist-transform-immutable@5.0.0","dist":{"shasum":"6172c8fb08bf508651695436844608d0a649bf55","integrity":"sha512-88qxGmhNz+nn3TTndmlnqD1omisxK9slp/ZEkseT+ho7B54bj6rSGxUNvSPGcoyLNUTFs4l2l7BsxLRmbgUr/A==","tarball":"https://registry.npmjs.org/@artkravchenko/redux-persist-transform-immutable/-/redux-persist-transform-immutable-5.0.0.tgz","fileCount":4,"unpackedSize":4111,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYTLdCRA9TVsSAnZWagAA78wP/Rk8OJv2+HhbGDAGWPAC\nyZ6wByqHBGNUHA58g6hH/MdWbbEHDTe1RN2aJhFhjMcMIxIVqYsr3JVQpY5O\nwS+0eoHwcQKjHO+8EXFj5ZIHaXSH1dk16DsSvt+l7a9AvJKSAfGEzdJXei0G\n9FXUgXkCmpS6yxNGaeaOqKXi41YHhDzH+0dT3bU6ocfqfGlDNaBCtWc3wJDA\ntRsEcAwAtmaW+4N4LquDjh+VCYu3bRtRO5GdIXS1uSr5b/DZOs8A7shM7Mzi\ndmA7KvF73LpsNC6Uz1ow47bnqw77Vt5EBgAH6egcPhsPidB364VBWs2PrMjq\n5N7Ik0neq6ZIOtgWjgxa+PWewHpIHk/1vTpBpQi42+p9WyNcf8EdwYkR/rRd\ng7D9N3QPiOxkXHY+ID7u5fr/SEAGETYYy8XmdlDgDfBIAJQ92dgOZonCFvsi\nHunkWTIw/5FUmIv4w5kGjvcpZLBhtA3DiCitSqaFufwHAbJakJWUevhZavRH\n5vMLrdYjqiH+7deBZxT4rZkELqFjXkHzVasW9AKuYkt7uN604B8FBqj8AOhn\n/TzPhJHJXt9RT+V6FviitBCbhAh+h/fu2mAsBFfvW/zkG3rRQvNtK7U+6blb\nVAXV1FqmSiRGd3z8yO3jgUtjCqmeHt73q4W/fnkJ4ITLwK5iunuEpJM8UE/3\n2KhD\r\n=Sis4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdZTEs3aCFbjfgrm4Cd5e01AT4g4hwKRLBctaSXs4P/AIgA0x/c6+JOtDM9cyLdTW9kKTu4qFxLbOU1iYITbxLIEs="}]},"maintainers":[{"name":"oopscurity","email":"kravchenkofirst@gmail.com"}],"_npmUser":{"name":"oopscurity","email":"kravchenkofirst@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-persist-transform-immutable_5.0.0_1583428317067_0.5050644070950894"},"_hasShrinkwrap":false},"5.0.1":{"name":"@artkravchenko/redux-persist-transform-immutable","version":"5.0.1","description":"immutable.js transform for redux-persist","main":"index.js","scripts":{"test":"echo \"no test specified\" && exit 0"},"dependencies":{"@artkravchenko/remotedev-serialize":"^0.1.9"},"peerDependencies":{"redux-persist":"^4.0.0","immutable":">= 3"},"repository":{"type":"git","url":"https://github.com/artkravchenko/redux-persist-transform-immutable.git"},"keywords":["redux","redux-persist","redux-persist-transform","compression"],"homepage":"https://github.com/artkravchenko/redux-persist-transform-immutable","author":{"name":"rt2zz","email":"zack@root-two.com"},"license":"MIT","_id":"@artkravchenko/redux-persist-transform-immutable@5.0.1","dist":{"shasum":"8c2fcb2436743afc7858e544585c1548e5433e20","integrity":"sha512-K8oIPCOLCNR9OaCzfCkVQ1vUEUrbDVGv/wnxRJMQNu25rlmHlIIaHHkcnQAfRTiGSuUGmk/C0Dl3fn5GOuRIxQ==","tarball":"https://registry.npmjs.org/@artkravchenko/redux-persist-transform-immutable/-/redux-persist-transform-immutable-5.0.1.tgz","fileCount":4,"unpackedSize":4111,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYTM/CRA9TVsSAnZWagAARgkP/ibLXG/+ih4bOsac+dNY\n4h6eIJ2kijBKY5Gr5jJ1LnbZ0TYBHxQMz+79ZzlOpn4jCc5pcaKLOw+CqCra\ne44Y9edRjLamQbMoFvUzXqZ4Vq6wrNno0uGNNEXOIw+OzVrzV/vB2LBcoYFC\nNPJha3OiVTaD96dP8NxDgpVh5pYP7q4cCVX7ZJC+JYUohJkn6zMixPhHS0E7\nAA4Rz1Ea+XgYvw4JQAB8+PiUJKm59+cp0fKp2nbFyKdPguFlIdDM/CQOH21P\npavgwgh8mpjeXm0lxPOlhMciiPQQc+e8F1/JO+vP13hvdyzShBqrS+Qi6dnm\nF1Y4z2NryrXfNh4/DegK6AHtD7s1MT1GqKX8WV3CN3au9nk94qGsHmmuLt7y\nx9+69jRoKviDVepaqzAjI4d3GKw7WgYL8PAd/xFgCjtjA0F9Z1EIU1T+AkOu\nQ/XzgajsgGk8Rb/YAOZ652GSYUBptBKaTUlgNlfGEI9XhRIgDKGS0uWc0/vI\nJ2bNVM0dDJ51UxYG+qLOstxkaY+ZCODogXW7jE0TRONq8DclFZRNi+rwKPxi\nX+J5rmZIwOKPf82yq4SJaIrcSjYXFMlsFTR6/zeIyVq3Qf3QSUoIVrseQk9H\n25XvLNoOHvnpP//XagZHc8aZfbIPTZ/ZIn/1KOWEOL7pOulvBM7NWQD8wa9w\nQRIa\r\n=4FfL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZrMkwo4hBicNFkLcxoP8rGtwAhfMRGlCOrIJgNDaDuwIhAKDUuIC8gLYSkTy6Kw5Z1uGbwHyXYK/icOPFPaNdeFQo"}]},"maintainers":[{"name":"oopscurity","email":"kravchenkofirst@gmail.com"}],"_npmUser":{"name":"oopscurity","email":"kravchenkofirst@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-persist-transform-immutable_5.0.1_1583428414851_0.4665908886608947"},"_hasShrinkwrap":false},"5.0.2":{"name":"@artkravchenko/redux-persist-transform-immutable","version":"5.0.2","description":"immutable.js transform for redux-persist","main":"index.js","scripts":{"test":"echo \"no test specified\" && exit 0"},"dependencies":{"@artkravchenko/remotedev-serialize":"^0.1.9"},"peerDependencies":{"immutable":">= 3","redux-persist":"^4.0.0"},"repository":{"type":"git","url":"https://github.com/artkravchenko/redux-persist-transform-immutable.git"},"keywords":["redux","redux-persist","redux-persist-transform","compression"],"homepage":"https://github.com/artkravchenko/redux-persist-transform-immutable","author":{"name":"rt2zz","email":"zack@root-two.com"},"license":"MIT","_id":"@artkravchenko/redux-persist-transform-immutable@5.0.2","dist":{"shasum":"d5011b9615d1fd700ad6e01fc964834c3030a9c1","integrity":"sha512-wJLQrMh0Eo+G8GahvsQnGIMn6Gm1127ex9Q6cq45Gdj70iZfQWwOI0/T4zehvTy2PVM433555X0jifpJaxsGdw==","tarball":"https://registry.npmjs.org/@artkravchenko/redux-persist-transform-immutable/-/redux-persist-transform-immutable-5.0.2.tgz","fileCount":4,"unpackedSize":4126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYTTSCRA9TVsSAnZWagAAd5YP/3VtPUQbj4/7jtHE5V6g\nOrbtrNTCpWYCdymlzwTb9ROMblu24kwdgxzjnw0WIRl1L8eEc8iBg7jOMjxW\noBXunKwit0KVnzv7Pja+n+5YwDrZO3FbTOF+0ANTCEXO7pM9wXyGV9SQufAb\nXFd56cDlgh7vNVDOFaAsZmofn43luy2hE2TlJ4MO0NGzjoLgPMcgiTqsn4ZW\nbHXThx4+Vuvsf/c1awuzKb4ltUKAfN3YKim98VaLdhiapVAR0PcWpORnhhWJ\nAJFMeHmqHJMfJqNxI0jfSP7SQN7XUqvoujKgECRtVUaWxVAb6RFxseDjcwob\nRA+3DnucWeXjz7YQaR31sZ6oB4o5Wuaq7m9a9j7XbG6tejTOm9H6nNUONE4+\n29MCtJ8pbTdTHZnz6krSBoOhe2I0KwLZP7Av/6RwY2qd892Ci1QL6d8ENQ/0\nFurffdMEAr7DK4OWzIiqUL7qL1pZP4i4rL490umE/l/jLNlS7AhshP1aw3eq\nqIQYGdY9FyXHJ/LQTJFOlxIxtA4DVVFFTBoU1ZGTvCOAaoNgleK4vVDaaL9p\nHp+BYT1zniaswdFt6PSQz8iMymnrP0COHoFRrbZgTwwU0W2K6gLSOrK6X1Kx\nRyzbI7DlNhqhlyaDWb9fKa1ANaxWby0suFhRMaU+GtAdiK9aEHO502SZNbDo\nlJgc\r\n=oHcV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrpbwecbrak0u1nI7kJNSDm82vSKHF+xcDBV7DVMP52AIhANbzgHXTfRF/pynQxG+LYzkErQBFkloZ5PbwNkwPJoy5"}]},"maintainers":[{"name":"oopscurity","email":"kravchenkofirst@gmail.com"}],"_npmUser":{"name":"oopscurity","email":"kravchenkofirst@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-persist-transform-immutable_5.0.2_1583428818181_0.9498293117827139"},"_hasShrinkwrap":false}},"time":{"created":"2020-03-05T17:11:56.870Z","5.0.0":"2020-03-05T17:11:57.172Z","modified":"2022-04-04T15:39:31.776Z","5.0.1":"2020-03-05T17:13:35.038Z","5.0.2":"2020-03-05T17:20:18.326Z"},"maintainers":[{"name":"oopscurity","email":"kravchenkofirst@gmail.com"}],"description":"immutable.js transform for redux-persist","homepage":"https://github.com/artkravchenko/redux-persist-transform-immutable","keywords":["redux","redux-persist","redux-persist-transform","compression"],"repository":{"type":"git","url":"https://github.com/artkravchenko/redux-persist-transform-immutable.git"},"author":{"name":"rt2zz","email":"zack@root-two.com"},"license":"MIT","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"}