{"_id":"react-clientside-effect","_rev":"4559871","name":"react-clientside-effect","description":"Create components whose prop changes map to a global side effect","dist-tags":{"latest":"1.2.8"},"maintainers":[{"name":"kashey","email":""}],"time":{"modified":"2026-04-09T17:59:47.000Z","created":"2018-08-17T07:51:54.459Z","1.2.8":"2025-05-18T03:09:46.789Z","1.2.7":"2024-12-15T02:32:09.027Z","1.2.6":"2022-05-07T08:23:12.141Z","1.2.5":"2021-02-11T21:13:46.440Z","1.2.4":"2021-02-08T09:23:26.654Z","1.2.3":"2020-12-23T03:49:12.999Z","1.2.2":"2019-07-31T09:41:25.791Z","1.2.1":"2019-06-10T13:00:26.556Z","1.2.0":"2018-11-11T22:54:57.796Z","1.0.0":"2018-08-17T07:51:54.459Z"},"users":{},"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"versions":{"1.2.8":{"name":"react-clientside-effect","version":"1.2.8","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","sideEffects":false,"scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"},"dependencies":{"@babel/runtime":"^7.12.13"},"devDependencies":{"@babel/cli":"^7.12.13","@babel/core":"^7.12.13","@babel/node":"^7.12.13","@babel/plugin-proposal-class-properties":"^7.12.13","@babel/plugin-proposal-object-rest-spread":"^7.12.13","@babel/plugin-transform-runtime":"^7.12.13","@babel/preset-env":"^7.12.13","@babel/preset-react":"^7.12.13","@babel/register":"^7.12.13","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"packageManager":"yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e","_id":"react-clientside-effect@1.2.8","gitHead":"cb62c7569f92e856da6d3e22fac8ff39d8b0e5f2","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"shasum":"0b90a9d7b2a1823a3a10ed1ea3f651f7e0301cb7","size":5022,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.8.tgz"},"_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"directories":{},"maintainers":[{"name":"kashey","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-clientside-effect_1.2.8_1747537786568_0.08361530008055951"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-05-18T03:09:46.789Z","publish_time":1747537786789,"_source_registry_name":"default","_cnpm_publish_time":1747537786789},"1.2.7":{"name":"react-clientside-effect","version":"1.2.7","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"},"dependencies":{"@babel/runtime":"^7.12.13"},"devDependencies":{"@babel/cli":"^7.12.13","@babel/core":"^7.12.13","@babel/node":"^7.12.13","@babel/plugin-proposal-class-properties":"^7.12.13","@babel/plugin-proposal-object-rest-spread":"^7.12.13","@babel/plugin-transform-runtime":"^7.12.13","@babel/preset-env":"^7.12.13","@babel/preset-react":"^7.12.13","@babel/register":"^7.12.13","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"ed713458e42e7810a1cec972e9e6ab772a3182e1","_id":"react-clientside-effect@1.2.7","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"shasum":"78eb62e3be36208d4d8d5b2668ae630a32deca73","size":4841,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.7.tgz"},"_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"directories":{},"maintainers":[{"name":"kashey","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-clientside-effect_1.2.7_1734229928843_0.6724585855543594"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-15T02:32:09.027Z","publish_time":1734229929027,"_source_registry_name":"default","_cnpm_publish_time":1734229929027},"1.2.6":{"name":"react-clientside-effect","version":"1.2.6","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"},"dependencies":{"@babel/runtime":"^7.12.13"},"devDependencies":{"@babel/cli":"^7.12.13","@babel/core":"^7.12.13","@babel/node":"^7.12.13","@babel/plugin-proposal-class-properties":"^7.12.13","@babel/plugin-proposal-object-rest-spread":"^7.12.13","@babel/plugin-transform-runtime":"^7.12.13","@babel/preset-env":"^7.12.13","@babel/preset-react":"^7.12.13","@babel/register":"^7.12.13","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"1f2ab3080b2c63ed50eb1f54102cdf86d651327e","_id":"react-clientside-effect@1.2.6","_nodeVersion":"14.18.3","_npmVersion":"6.14.15","dist":{"shasum":"29f9b14e944a376b03fb650eed2a754dd128ea3a","size":4855,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.6.tgz"},"_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"directories":{},"maintainers":[{"name":"kashey","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.6_1651911791907_0.5177981356265402"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-07T08:56:45.867Z","publish_time":1651911792141,"_cnpm_publish_time":1651911792141},"1.2.5":{"name":"react-clientside-effect","version":"1.2.5","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^15.3.0 || ^16.0.0 || ^17.0.0"},"dependencies":{"@babel/runtime":"^7.12.13"},"devDependencies":{"@babel/cli":"^7.12.13","@babel/core":"^7.12.13","@babel/node":"^7.12.13","@babel/plugin-proposal-class-properties":"^7.12.13","@babel/plugin-proposal-object-rest-spread":"^7.12.13","@babel/plugin-transform-runtime":"^7.12.13","@babel/preset-env":"^7.12.13","@babel/preset-react":"^7.12.13","@babel/register":"^7.12.13","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"f1a4ead02257b7905659f907186e488018cd2646","_id":"react-clientside-effect@1.2.5","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"shasum":"e2c4dc3c9ee109f642fac4f5b6e9bf5bcd2219a3","size":4854,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.5.tgz"},"_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"directories":{},"maintainers":[{"name":"kashey","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.5_1613078026235_0.06024826274895978"},"_hasShrinkwrap":false,"publish_time":1613078026440,"_cnpm_publish_time":1613078026440},"1.2.4":{"name":"react-clientside-effect","version":"1.2.4","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^15.3.0 || ^16.0.0 || ^17.0.0"},"dependencies":{"@babel/runtime":"^7.12.13"},"devDependencies":{"@babel/cli":"^7.12.13","@babel/core":"^7.12.13","@babel/node":"^7.12.13","@babel/plugin-proposal-class-properties":"^7.12.13","@babel/plugin-proposal-object-rest-spread":"^7.12.13","@babel/plugin-transform-runtime":"^7.12.13","@babel/preset-env":"^7.12.13","@babel/preset-react":"^7.12.13","@babel/register":"^7.12.13","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"24f7100104b43832c6407df686b1ee7a3ad90c3e","_id":"react-clientside-effect@1.2.4","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"shasum":"42cca8bd3b8aec29b811b0f30ab7674d8da9d3d2","size":4786,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.4.tgz"},"_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"directories":{},"maintainers":[{"name":"kashey","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.4_1612776206520_0.286534952390205"},"_hasShrinkwrap":false,"publish_time":1612776206654,"_cnpm_publish_time":1612776206654},"1.2.3":{"name":"react-clientside-effect","version":"1.2.3","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^15.3.0 || ^16.0.0 || ^17.0.0"},"dependencies":{"@babel/runtime":"^7.0.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/node":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"46c87c1988228b39b3325db527f4abce7a7cfebb","_id":"react-clientside-effect@1.2.3","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"shasum":"95c95f520addfb71743608b990bfe01eb002012b","size":4779,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.3.tgz"},"_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"directories":{},"maintainers":[{"name":"kashey","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.3_1608695352805_0.7850639251132132"},"_hasShrinkwrap":false,"publish_time":1608695352999,"_cnpm_publish_time":1608695352999},"1.2.2":{"name":"react-clientside-effect","version":"1.2.2","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^15.3.0 || ^16.0.0"},"dependencies":{"@babel/runtime":"^7.0.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/node":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"e7b85e719bf8203a6742230a633cf8d4d9bb5921","_id":"react-clientside-effect@1.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"dist":{"shasum":"6212fb0e07b204e714581dd51992603d1accc837","size":4736,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.2.tgz"},"maintainers":[{"name":"kashey","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.2_1564566085497_0.6390651329916761"},"_hasShrinkwrap":false,"publish_time":1564566085791,"_cnpm_publish_time":1564566085791},"1.2.1":{"name":"react-clientside-effect","version":"1.2.1","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^15.3.0 || ^16.0.0"},"dependencies":{"@babel/runtime":"^7.0.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/node":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"1458c1c380e9ec75903db759fcaee6fc50c08457","_id":"react-clientside-effect@1.2.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"dist":{"shasum":"feb81abe9531061d4987941c15a00f2b3d0b6071","size":4766,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.1.tgz"},"maintainers":[{"name":"kashey","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.1_1560171626451_0.4072951084146066"},"_hasShrinkwrap":false,"publish_time":1560171626556,"_cnpm_publish_time":1560171626556},"1.2.0":{"name":"react-clientside-effect","version":"1.2.0","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","jsnext:main":"lib/index.es.js","module":"lib/index.es.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^0.13.0 || ^0.14.0 || ^15.0.0 || ^16.0.0"},"dependencies":{"@babel/runtime":"^7.0.0","shallowequal":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.0.0","@babel/core":"^7.0.0","@babel/node":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.0.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","@babel/preset-react":"^7.0.0","@babel/register":"^7.0.0","babel-plugin-add-module-exports":"^0.2.1","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.67.1","rollup-plugin-babel":"^4.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"gitHead":"c052cd673c75dafb63f4e7853ff0db0aa9505323","_id":"react-clientside-effect@1.2.0","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"dist":{"shasum":"db823695f75e9616a5e4dd6d908e5ea627fb2516","size":5335,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.2.0.tgz"},"maintainers":[{"name":"kashey","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.2.0_1541976897691_0.48011500360337034"},"_hasShrinkwrap":false,"publish_time":1541976897796,"_cnpm_publish_time":1541976897796},"1.0.0":{"name":"react-clientside-effect","version":"1.0.0","description":"Create components whose prop changes map to a global side effect","main":"lib/index.js","scripts":{"build":"node scripts/build.js","clean":"rimraf lib","prepare":"npm test && npm run clean && npm run build","test":"mocha","test:watch":"mocha --watch","test:cov":"babel-node ./node_modules/.bin/isparta cover ./node_modules/.bin/_mocha"},"repository":{"type":"git","url":"git+https://github.com/thekashey/react-clientside-effect.git"},"keywords":["react","component","side","effect"],"author":{"name":"Dan Abramov","email":"dan.abramov@me.com","url":"http://github.com/gaearon"},"license":"MIT","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"homepage":"https://github.com/thekashey/react-clientside-effect","contributors":[{"name":"Louis DeScioli","email":"louis.descioli@gmail.com"}],"peerDependencies":{"react":"^0.13.0 || ^0.14.0 || ^15.0.0 || ^16.0.0"},"dependencies":{"shallowequal":"^1.1.0"},"devDependencies":{"babel-cli":"^6.18.0","babel-core":"^6.21.0","babel-plugin-add-module-exports":"^0.2.1","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.0","babel-preset-react":"^6.16.0","babel-register":"^6.18.0","chai":"^3.2.0","enzyme":"^2.7.0","exenv":"^1.2.2","gzip-size":"^4.1.0","isparta":"^4.0.0","jsdom":"^11.12.0","jsdom-global":"^3.0.2","mocha":"^3.2.0","pretty-bytes":"^4.0.2","react":"^15.4.2","react-addons-test-utils":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.4.3","rollup":"^0.56.2","rollup-plugin-babel":"^3.0.2","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.3","rollup-plugin-uglify":"^3.0.0"},"files":["LICENSE","README.md","lib/"],"gitHead":"a2ed531ab91c953010de7912094ba062f5545b0d","_id":"react-clientside-effect@1.0.0","_npmVersion":"6.1.0","_nodeVersion":"10.4.1","_npmUser":{"name":"kashey","email":"thekashey@gmail.com"},"dist":{"shasum":"81c4f91bd4ec0f8792ba76fe29c1d09e37fff062","size":5255,"noattachment":false,"key":"/react-clientside-effect/-/react-clientside-effect-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/react-clientside-effect/download/react-clientside-effect-1.0.0.tgz"},"maintainers":[{"name":"kashey","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-clientside-effect_1.0.0_1534492314383_0.7673006111578662"},"_hasShrinkwrap":false,"publish_time":1534492314459,"_cnpm_publish_time":1534492314459}},"readme":"# React Side Effect [![Downloads](https://img.shields.io/npm/dm/react-side-effect.svg)](https://npmjs.com/react-side-effect) [![npm version](https://img.shields.io/npm/v/react-side-effect.svg?style=flat)](https://www.npmjs.com/package/react-side-effect)\n\nCreate components whose prop changes map to a global side effect.\n\nThis is client-side variation of the original react-side-effect, for client-side\ncomponents.\nIt does nothing on server side.\n\n## Installation\n\n```\nnpm install --save react-clientside-effect\n```\n\n## Use Cases\n\n* Setting `document.body.style.margin` or background color depending on current screen;\n* Firing Flux actions using declarative API depending on current screen;\n* Some crazy stuff I haven't thought about.\n\n## How's That Different from `componentDidUpdate`?\n\nIt gathers current props across *the whole tree* before passing them to side effect. For example, this allows you to create `<BodyStyle style>` component like this:\n\n```js\n// RootComponent.js\nreturn (\n  <BodyStyle style={{ backgroundColor: 'red' }}>\n    {this.state.something ? <SomeComponent /> : <OtherComponent />}\n  </BodyStyle>\n);\n\n// SomeComponent.js\nreturn (\n  <BodyStyle style={{ backgroundColor: this.state.color }}>\n    <div>Choose color: <input valueLink={this.linkState('color')} /></div>\n  </BodyStyle>\n);\n```\n\nand let the effect handler merge `style` from different level of nesting with innermost winning:\n\n```js\nimport { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\n\nclass BodyStyle extends Component {\n  render() {\n    return Children.only(this.props.children);\n  }\n}\n\nBodyStyle.propTypes = {\n  style: PropTypes.object.isRequired\n};\n\nfunction reducePropsToState(propsList) {\n  var style = {};\n  propsList.forEach(function (props) {\n    Object.assign(style, props.style);\n  });\n  return style;\n}\n\nfunction handleStateChangeOnClient(style) {\n  Object.assign(document.body.style, style);\n}\n\nexport default withSideEffect(\n  reducePropsToState,\n  handleStateChangeOnClient\n)(BodyStyle);\n```\n\n## API\n\n#### `withSideEffect: (reducePropsToState, handleStateChangeOnClient, [mapStateOnServer]) -> ReactComponent -> ReactComponent`\n\nA [higher-order component](https://medium.com/@dan_abramov/mixins-are-dead-long-live-higher-order-components-94a0d2f9e750) that, when mounting, unmounting or receiving new props, calls `reducePropsToState` with `props` of **each mounted instance**. It is up to you to return some state aggregated from these props.\n\nOn the client, every time the returned component is (un)mounted or its props change, `reducePropsToState` will be called, and the recalculated state will be passed to `handleStateChangeOnClient` where you may use it to trigger a side effect.\n\n## Usage\n\nHere's how to implement [React Document Title](https://github.com/gaearon/react-document-title) (both client and server side) using React Side Effect:\n\n```js\nimport React, { Children, Component } from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\n\nclass DocumentTitle extends Component {\n  render() {\n    if (this.props.children) {\n      return Children.only(this.props.children);\n    } else {\n      return null;\n    }\n  }\n}\n\nDocumentTitle.propTypes = {\n  title: PropTypes.string.isRequired\n};\n\nfunction reducePropsToState(propsList) {\n  var innermostProps = propsList[propsList.length - 1];\n  if (innermostProps) {\n    return innermostProps.title;\n  }\n}\n\nfunction handleStateChangeOnClient(title) {\n  document.title = title || '';\n}\n\nexport default withSideEffect(\n  reducePropsToState,\n  handleStateChangeOnClient\n)(DocumentTitle);\n```\n\n","_attachments":{},"homepage":"https://github.com/thekashey/react-clientside-effect","bugs":{"url":"https://github.com/thekashey/react-clientside-effect/issues"},"license":"MIT"}