{"_id":"redux-devtools-serialize","_rev":"2-2d6ebc1541aaab1128cb0f27306fca8d","name":"redux-devtools-serialize","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"redux-devtools-serialize","version":"0.2.0","description":"Serialize unserializable data and parse it back.","keywords":["redux","devtools"],"homepage":"https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-serialize","bugs":{"url":"https://github.com/reduxjs/redux-devtools/issues"},"license":"MIT","author":{"name":"Mihail Diordiev","email":"zalmoxisus@gmail.com","url":"https://github.com/zalmoxisus"},"main":"lib/index.js","types":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/reduxjs/redux-devtools.git"},"scripts":{"build":"npm run build:types && npm run build:js","build:types":"tsc --emitDeclarationOnly","build:js":"babel src --out-dir lib --extensions \".ts\" --source-maps inline","clean":"rimraf lib","test":"jest","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","type-check:watch":"npm run type-check -- --watch","preversion":"npm run type-check && npm run lint && npm run test","prepublishOnly":"npm run clean && npm run build"},"dependencies":{"jsan":"^3.1.13"},"devDependencies":{"@types/jsan":"^3.1.0","immutable":"^4.0.0-rc.12"},"peerDependencies":{"immutable":"^4.0.0-rc.12"},"gitHead":"f4405ac0f016b7997e1a6d31796aa99ad632889e","_id":"redux-devtools-serialize@0.2.0","_nodeVersion":"12.18.3","_npmVersion":"lerna/3.22.1/node@v12.18.3+x64 (win32)","dist":{"integrity":"sha512-Oy1U9HdPCBsJtK1nte+CkOc0yKVACVwawAO3l3t0O5Y9omHqauxBNxjDNtAGMw6njmPIR4uomOEfTqTeS7bOJQ==","shasum":"8d9fe297ea8c929fb738de81facd5cf70242fc00","tarball":"https://registry.npmjs.org/redux-devtools-serialize/-/redux-devtools-serialize-0.2.0.tgz","fileCount":31,"unpackedSize":48562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVmSfCRA9TVsSAnZWagAAR0EP/2L6iwntj+jYxRhKBbxr\n+ctbUFvemCwOffFLdW1FhhU87UqXjxl0lRnGXBfz3qVPCmfrHMvEtSkEn1d1\ntBIsnpY/FpuKYwZONu1DDY9xk7ghamEKzEJmTJPbIWa1bYkxhbO+3H6ZvNUF\nfBgemToTzgfnceuQePvHoqytstLCHE5VFfoVx5Yjn7bQFBaZhPsuCjN9tpN7\nGLL2Ei9t5Rh9bonJzutSeRa/lpfiy3avsqT2MSls4/SBMQP129IXpBZPLlzy\nji4BYfuIZL1GYxSSDV3+7PHKEnW1x5dbIdnT1VU6dmQ+ZeT+E408mdZ4WQ5J\nh5YCoWgtzsRpq4Pl0sPXFyfrIfItFGkPVNy75JNE7dmHNA9M9fik0KjKFIy8\nbOQO6vXgbv6vSrlOu+IaiyAIFh+YyeGH2km8LmGDMmw18g31aIkHp//tDkFQ\nPAjDx4n1I+btBMpB5nD/thF7I4tX+kPR4JfUWydHRxJdTP7eYj6N0nU2/vIq\noA113/RyYDdS6JDjrbC4h6+yI326xX/64ZWHKNwWycuPZKMYw9mUnl8+pHky\nuN6nvSdzI70HEUn1oMkj+BXM5C/AtiVc1R6tvrgI7v7R5jvh18CBgZpifLRo\ntT0P6Be3tIEg9IsPg5j5FLdlXHoc2RDpqB/yGgCGx7mgEBdzZ1rdXmBrhW6J\nCjpa\r\n=Wmmq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaW+/N+QJBmP+OdOnoumggDAKxoNPKySROc+ped2EfywIhANSWWsv9MRf5NgToNWjrn6xFCJYiiPF2uaA4D4WDXAaN"}]},"maintainers":[{"name":"methuselah96","email":"nbierema@gmail.com"}],"_npmUser":{"name":"methuselah96","email":"nbierema@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-devtools-serialize_0.2.0_1599497374861_0.793915733867574"},"_hasShrinkwrap":false,"deprecated":"Package moved to @redux-devtools/serialize."}},"time":{"created":"2020-09-07T16:49:34.861Z","0.2.0":"2020-09-07T16:49:34.970Z","modified":"2022-05-15T15:07:09.315Z"},"maintainers":[{"name":"methuselah96","email":"nbierema@gmail.com"}],"description":"Serialize unserializable data and parse it back.","homepage":"https://github.com/reduxjs/redux-devtools/tree/master/packages/redux-devtools-serialize","keywords":["redux","devtools"],"repository":{"type":"git","url":"git+https://github.com/reduxjs/redux-devtools.git"},"author":{"name":"Mihail Diordiev","email":"zalmoxisus@gmail.com","url":"https://github.com/zalmoxisus"},"bugs":{"url":"https://github.com/reduxjs/redux-devtools/issues"},"license":"MIT","readme":"# Serialize ImmutableJS data\n\n### Installation\n\n```\nyarn add redux-devtools-serialize\n```\n\n### Usage with ImmutableJS data structures\n\nJust pass the Immutable library to our class:\n\n```js\nimport Immutable from 'immutable';\nimport Serialize from 'redux-devtools-serialize';\nconst { stringify, parse } = Serialize.immutable(Immutable);\n\nconst data = Immutable.fromJS({ foo: 'bar', baz: { qux: 42 } });\nconst serialized = stringify(data);\nconsole.log(serialized);\n// {\"data\":{\"foo\":\"bar\",\"baz\":{\"data\":{\"qux\":42},\"__serializedType__\":\"ImmutableMap\"}},\"__serializedType__\":\"ImmutableMap\"}\nconst parsed = parse(serialized);\nconsole.log(Immutable.is(parsed, data));\n// true\n```\n\nSee [the tests](https://github.com/reduxjs/remote-devtools/blob/master/packages/remotedev-serialize/test/immutable.spec.js) for more examples of usage.\n\n### Usage with ImmutableJS Record classes\n\nTo parse a Record class back, you need to specify a reference to it:\n\n```js\nimport Immutable from 'immutable';\nimport Serialize from 'redux-devtools-serialize';\n\nconst ABRecord = Immutable.Record({ a: 1, b: 2 });\nconst { stringify, parse } = Serialize.immutable(Immutable, [ABRecord]);\n\nconst myRecord = new ABRecord({ b: 3 });\nconst serialized = stringify(myRecord);\nconsole.log(serialized);\n// {\"data\":{\"a\":1,\"b\":3},\"__serializedType__\":\"ImmutableRecord\",\"__serializedRef__\":0}\nconst parsed = parse(serialized);\nconsole.log(Immutable.is(parsed, myRecord));\n// true\n```\n\n### Passing custom serialization functions\n\nYou can pass custom replacer and reviver functions to Serialize:\n\n```js\nimport Immutable from 'immutable';\nimport Serialize from 'redux-devtools-serialize';\n\nfunction customReplacer(key, value, defaultReplacer) {\n  if (value === 1) {\n    return { data: 'one', __serializedType__: 'number' };\n  }\n  return defaultReplacer(key, value);\n}\n\nfunction customReviver(key, value, defaultReviver) {\n  if (\n    typeof value === 'object' &&\n    value.__serializedType__ === 'number' &&\n    value.data === 'one'\n  ) {\n    return 1;\n  }\n  return defaultReviver(key, value);\n}\n\nconst { stringify, parse } = Serialize.immutable(\n  Immutable,\n  null,\n  customReplacer,\n  customReviver\n);\n\nconst map = Immutable.Map({ a: 1, b: 2 });\nconst serialized = stringify(map);\nconsole.log(serialized);\n// {\"data\":{\"a\":{\"data\":\"one\",\"__serializedType__\":\"number\"},\"b\":2},\"__serializedType__\":\"ImmutableMap\"}\nconst parsed = parse(serialized);\nconsole.log(Immutable.is(parsed, map));\n// true\n```\n\n### Supported\n\n#### ImutableJS\n\n- [x] Record\n- [x] Range\n- [x] Repeat\n- [x] Map\n- [x] OrderedMap\n- [x] List\n- [x] Set\n- [x] OrderedSet\n- [x] Seq\n- [x] Stack\n\n#### ES6\n\n- [x] Symbol\n- [x] Map\n- [x] Set\n- [ ] Typed Array\n\n### License\n\nMIT\n","readmeFilename":"README.md"}