{"_id":"mini-create-react-context","_rev":"259770","name":"mini-create-react-context","description":"Smaller Polyfill for the proposed React context API","dist-tags":{"latest":"0.4.1"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"time":{"modified":"2021-06-03T16:40:40.000Z","created":"2019-04-05T22:16:24.446Z","0.4.1":"2020-10-22T18:32:29.484Z","0.3.3":"2020-10-22T17:40:51.725Z","0.4.0":"2020-03-02T08:28:56.727Z","0.3.2":"2019-04-13T01:16:35.643Z","0.3.0":"2019-04-05T22:30:18.464Z","0.2.4":"2019-04-05T22:16:24.446Z"},"users":{},"author":{"name":"StringEpsilon"},"repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"versions":{"0.4.1":{"name":"mini-create-react-context","version":"0.4.1","description":"Smaller Polyfill for the proposed React context API","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"author":{"name":"StringEpsilon"},"license":"MIT","keywords":["react","context","contextTypes","polyfill","ponyfill"],"scripts":{"test":"jest","build":"rollup -c rollup.config.js","prepublish":"npm run build"},"dependencies":{"@babel/runtime":"^7.12.1","tiny-warning":"^1.0.3"},"peerDependencies":{"prop-types":"^15.0.0","react":"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"},"devDependencies":{"@babel/core":"^7.12.3","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/preset-env":"^7.12.1","@babel/preset-react":"^7.12.1","@babel/preset-typescript":"^7.12.1","@types/enzyme":"^3.10.5","@types/jest":"^26.0.10","@types/react":"^16.9.46","@wessberg/rollup-plugin-ts":"^1.3.6","babel-jest":"^25.5.1","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.5","enzyme-to-json":"^3.6.1","jest":"^26.6.0","prop-types":"^15.6.0","raf":"^3.4.1","react":"^16.13.1","react-dom":"^16.13.1","rollup":"^2.32.1","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^7.0.2","typescript":"^4.0.3"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"]},"gitHead":"c145fc0d23d98d58b5d5dce78323994882be0ad7","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","_id":"mini-create-react-context@0.4.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.7","dist":{"shasum":"072171561bfdc922da08a60c2197a497cc2d1d5e","size":5387,"noattachment":false,"key":"/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mini-create-react-context/download/mini-create-react-context-0.4.1.tgz"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"_npmUser":{"name":"stringepsilon","email":"stringepsilon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mini-create-react-context_0.4.1_1603391549319_0.45548484934732514"},"_hasShrinkwrap":false,"publish_time":1603391549484,"_cnpm_publish_time":1603391549484},"0.3.3":{"name":"mini-create-react-context","version":"0.3.3","description":"Smaller Polyfill for the proposed React context API","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"author":{"name":"StringEpsilon"},"license":"MIT","keywords":["react","context","contextTypes","polyfill","ponyfill"],"scripts":{"test":"jest","build":"rollup -c rollup.config.js","prepublish":"npm run build"},"dependencies":{"@babel/runtime":"^7.12.1","tiny-warning":"^1.0.3"},"peerDependencies":{"prop-types":"^15.0.0","react":"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"},"devDependencies":{"@babel/core":"^7.12.3","@babel/plugin-proposal-class-properties":"^7.12.1","@babel/preset-env":"^7.12.1","@babel/preset-react":"^7.12.1","@babel/preset-typescript":"^7.12.1","@types/enzyme":"^3.10.5","@types/jest":"^26.0.10","@types/react":"^16.9.46","@wessberg/rollup-plugin-ts":"^1.3.6","babel-jest":"^25.5.1","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.5","enzyme-to-json":"^3.6.1","jest":"^26.6.0","prop-types":"^15.6.0","raf":"^3.4.1","react":"^16.13.1","react-dom":"^16.13.1","rollup":"^2.32.1","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^7.0.2","typescript":"^4.0.3"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"]},"gitHead":"6061ee5f9c4893474d72fd17e20afa2a0d678079","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","_id":"mini-create-react-context@0.3.3","_nodeVersion":"12.19.0","_npmVersion":"6.14.7","dist":{"shasum":"b1b2bc6604d3a6c5d9752bad7692615410ebb38e","size":5387,"noattachment":false,"key":"/mini-create-react-context/-/mini-create-react-context-0.3.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/mini-create-react-context/download/mini-create-react-context-0.3.3.tgz"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"_npmUser":{"name":"stringepsilon","email":"stringepsilon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mini-create-react-context_0.3.3_1603388451604_0.07021491735440999"},"_hasShrinkwrap":false,"publish_time":1603388451725,"_cnpm_publish_time":1603388451725},"0.4.0":{"name":"mini-create-react-context","version":"0.4.0","description":"Smaller Polyfill for the proposed React context API","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"author":{"name":"StringEpsilon"},"license":"MIT","keywords":["react","context","contextTypes","polyfill","ponyfill"],"scripts":{"test":"jest","build":"rollup -c rollup.config.js","prepublish":"npm run build"},"dependencies":{"@babel/runtime":"^7.5.5","tiny-warning":"^1.0.3"},"peerDependencies":{"prop-types":"^15.0.0","react":"^0.14.0 || ^15.0.0 || ^16.0.0"},"devDependencies":{"@babel/core":"^7.8.6","@babel/plugin-proposal-class-properties":"^7.8.3","@babel/preset-env":"^7.8.6","@babel/preset-react":"^7.8.3","@babel/preset-typescript":"^7.8.3","@types/enzyme":"^3.10.5","@types/jest":"^25.1.3","@types/react":"^16.8.23","@wessberg/rollup-plugin-ts":"^1.2.19","babel-jest":"^25.1.0","enzyme":"^3.11.0","enzyme-adapter-react-16":"^1.15.2","enzyme-to-json":"^3.3.5","jest":"^25.1.0","prop-types":"^15.6.0","raf":"^3.4.1","react":"^16.2.0","react-dom":"^16.2.0","rollup":"^1.17.0","rollup-plugin-commonjs":"^10.0.1","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-terser":"^5.2.0","typescript":"^3.8.3"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"]},"gitHead":"0e3e6e64e79390a40ed672b63bba4f7fe96ffc45","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","_id":"mini-create-react-context@0.4.0","_nodeVersion":"13.9.0","_npmVersion":"6.14.0","dist":{"shasum":"df60501c83151db69e28eac0ef08b4002efab040","size":5319,"noattachment":false,"key":"/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mini-create-react-context/download/mini-create-react-context-0.4.0.tgz"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"_npmUser":{"name":"stringepsilon","email":"stringepsilon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mini-create-react-context_0.4.0_1583137736569_0.21898387814911602"},"_hasShrinkwrap":false,"publish_time":1583137736727,"_cnpm_publish_time":1583137736727},"0.3.2":{"name":"mini-create-react-context","version":"0.3.2","description":"Smaller Polyfill for the proposed React context API","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"author":{"name":"StringEpsilon"},"license":"MIT","keywords":["react","context","contextTypes","polyfill","ponyfill"],"scripts":{"test":"jest","build":"rollup -c rollup.config.js","prepublish":"npm run build"},"dependencies":{"gud":"^1.0.0","tiny-warning":"^1.0.2","@babel/runtime":"^7.4.0"},"peerDependencies":{"prop-types":"^15.0.0","react":"^0.14.0 || ^15.0.0 || ^16.0.0"},"devDependencies":{"@babel/cli":"^7.4.3","@babel/core":"^7.4.3","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/preset-env":"^7.4.3","@babel/preset-react":"^7.0.0","@babel/preset-typescript":"^7.3.3","@types/enzyme":"^3.9.1","@types/jest":"^24.0.11","@types/react":"^16.8.13","@wessberg/rollup-plugin-ts":"^1.1.46","babel-jest":"^24.7.1","enzyme":"^3.9.0","enzyme-adapter-react-16":"^1.11.2","enzyme-to-json":"^3.3.5","jest":"^24.7.1","prop-types":"^15.6.0","raf":"^3.4.1","react":"^16.2.0","react-dom":"^16.2.0","rollup":"^1.10.0","rollup-plugin-commonjs":"^9.3.4","rollup-plugin-node-resolve":"^4.2.3","rollup-plugin-uglify":"^6.0.2"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"]},"gitHead":"262cc54dcf7495ddb52956fab2b9ce5e65c7f584","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","_id":"mini-create-react-context@0.3.2","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"79fc598f283dd623da8e088b05db8cddab250189","size":5069,"noattachment":false,"key":"/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/mini-create-react-context/download/mini-create-react-context-0.3.2.tgz"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"_npmUser":{"name":"stringepsilon","email":"stringepsilon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mini-create-react-context_0.3.2_1555118195489_0.24343283109295544"},"_hasShrinkwrap":false,"publish_time":1555118195643,"_cnpm_publish_time":1555118195643},"0.3.0":{"name":"mini-create-react-context","version":"0.3.0","description":"Smaller Polyfill for the proposed React context API","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"author":{"name":"StringEpsilon"},"license":"MIT","keywords":["react","context","contextTypes","polyfill","ponyfill"],"scripts":{"test":"jest","build":"rollup -c rollup.config.js","prepublish":"npm run build"},"dependencies":{"gud":"^1.0.0","tiny-warning":"^1.0.2"},"peerDependencies":{"prop-types":"^15.0.0","react":"^0.14.0 || ^15.0.0 || ^16.0.0"},"devDependencies":{"@babel/cli":"^7.4.3","@babel/core":"^7.4.3","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/preset-env":"^7.4.3","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.0.0","@babel/preset-typescript":"^7.3.3","@types/enzyme":"^3.9.1","@types/jest":"^24.0.11","@types/react":"^16.8.12","babel-jest":"^24.7.1","enzyme":"^3.9.0","enzyme-adapter-react-16":"^1.11.2","enzyme-to-json":"^3.3.5","jest":"^24.7.1","prop-types":"^15.6.0","raf":"^3.4.1","react":"^16.2.0","react-dom":"^16.2.0","rollup":"^1.9.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^9.3.4","rollup-plugin-node-resolve":"^4.1.0","rollup-plugin-uglify":"^6.0.2"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"]},"gitHead":"9b61b2743f7e56bf8393f725af503e5b294b65ac","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","_id":"mini-create-react-context@0.3.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"526d19ffac4943a0825f035d903c391ebe5e6c46","size":5469,"noattachment":false,"key":"/mini-create-react-context/-/mini-create-react-context-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mini-create-react-context/download/mini-create-react-context-0.3.0.tgz"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"_npmUser":{"name":"stringepsilon","email":"stringepsilon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mini-create-react-context_0.3.0_1554503418332_0.9063353653711537"},"_hasShrinkwrap":false,"publish_time":1554503418464,"_cnpm_publish_time":1554503418464},"0.2.4":{"name":"mini-create-react-context","version":"0.2.4","description":"Smaller Polyfill for the proposed React context API","main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/index.d.ts","typings":"lib/index.d.ts","repository":{"type":"git","url":"git+https://github.com/StringEpsilon/mini-create-react-context.git"},"author":{"name":"StringEpsilon"},"license":"MIT","keywords":["react","context","contextTypes","polyfill","ponyfill"],"scripts":{"test":"jest","build":"rollup -c rollup.config.js","prepublish":"npm run build"},"dependencies":{"gud":"^1.0.0","tiny-warning":"^1.0.2"},"peerDependencies":{"prop-types":"^15.0.0","react":"^0.14.0 || ^15.0.0 || ^16.0.0"},"devDependencies":{"@babel/cli":"^7.4.3","@babel/core":"^7.4.3","@babel/plugin-proposal-class-properties":"^7.4.0","@babel/preset-env":"^7.4.3","@babel/preset-flow":"^7.0.0","@babel/preset-react":"^7.0.0","@babel/preset-typescript":"^7.3.3","@types/enzyme":"^3.9.1","@types/jest":"^24.0.11","@types/react":"^16.8.12","babel-jest":"^24.7.1","enzyme":"^3.9.0","enzyme-adapter-react-16":"^1.11.2","enzyme-to-json":"^3.3.5","jest":"^24.7.1","prop-types":"^15.6.0","raf":"^3.4.1","react":"^16.2.0","react-dom":"^16.2.0","rollup":"^1.9.0","rollup-plugin-babel":"^4.3.2","rollup-plugin-commonjs":"^9.3.4","rollup-plugin-node-resolve":"^4.1.0","rollup-plugin-uglify":"^6.0.2"},"jest":{"snapshotSerializers":["enzyme-to-json/serializer"]},"gitHead":"60e90da413d86c2361e0618820d5bb2628f2b9f7","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","_id":"mini-create-react-context@0.2.4","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"shasum":"091fa6d441f6cca603cf29fef0b9df268e5fe99f","size":3044,"noattachment":false,"key":"/mini-create-react-context/-/mini-create-react-context-0.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/mini-create-react-context/download/mini-create-react-context-0.2.4.tgz"},"maintainers":[{"name":"npm:stringepsilon","email":""},{"name":"stringepsilon","email":"stringepsilon@gmail.com"}],"_npmUser":{"name":"stringepsilon","email":"stringepsilon@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mini-create-react-context_0.2.4_1554502584288_0.9822684824475418"},"_hasShrinkwrap":false,"publish_time":1554502584446,"_cnpm_publish_time":1554502584446}},"readme":"# mini-create-react-context\n\n<p align=\"center\">\n<a href=\"https://packagephobia.now.sh/result?p=mini-create-react-context\">\n\t<img alt=\"npm install size\" src=\"https://packagephobia.now.sh/badge?p=mini-create-react-context\">\n</a>\n<a href=\"https://bundlephobia.com/result?p=mini-create-react-context@latest\">\n\t<img alt=\"npm bundle size\" src=\"https://img.shields.io/bundlephobia/min/mini-create-react-context/latest.svg?style=flat-square\">\n</a>\n<a href=\"https://www.npmjs.com/package/mini-create-react-context\">\n    <img alt=\"npm\" src=\"https://img.shields.io/npm/v/mini-create-react-context.svg?style=flat-square\">\n</a>\n</p>\n\n> (A smaller) Polyfill for the [React context API](https://github.com/reactjs/rfcs/pull/2)\n\n## Install\n\n```sh\nnpm install mini-create-react-context\n```\n\nYou'll need to also have `react` and `prop-types` installed.\n\n## API\n\n```js\nconst Context = createReactContext(defaultValue);\n/*\n\t<Context.Provider value={providedValue}>\n\t\t{children}\n\t</Context.Provider>\n\n\t...\n\n\t<Context.Consumer>\n\t\t{value => children}\n\t</Context.Consumer>\n*/\n```\n\n## Example\n\n```js\n// @flow\nimport React, { type Node } from 'react';\nimport createReactContext, { type Context } from 'mini-create-react-context';\n\ntype Theme = 'light' | 'dark';\n// Pass a default theme to ensure type correctness\nconst ThemeContext: Context<Theme> = createReactContext('light');\n\nclass ThemeToggler extends React.Component<\n  { children: Node },\n  { theme: Theme }\n> {\n  state = { theme: 'light' };\n  render() {\n    return (\n      // Pass the current context value to the Provider's `value` prop.\n      // Changes are detected using strict comparison (Object.is)\n      <ThemeContext.Provider value={this.state.theme}>\n        <button\n          onClick={() => {\n            this.setState(state => ({\n              theme: state.theme === 'light' ? 'dark' : 'light'\n            }));\n          }}\n        >\n          Toggle theme\n        </button>\n        {this.props.children}\n      </ThemeContext.Provider>\n    );\n  }\n}\n\nclass Title extends React.Component<{ children: Node }> {\n  render() {\n    return (\n      // The Consumer uses a render prop API. Avoids conflicts in the\n      // props namespace.\n      <ThemeContext.Consumer>\n        {theme => (\n          <h1 style={{ color: theme === 'light' ? '#000' : '#fff' }}>\n            {this.props.children}\n          </h1>\n        )}\n      </ThemeContext.Consumer>\n    );\n  }\n}\n```\n\n## Compatibility\n\nThis package only \"ponyfills\" the `React.createContext` API, not other unrelated React 16+ APIs. If you are using a version of React <16, keep in mind that you can only use features available in that version.\n\nFor example, you cannot pass children types aren't valid pre React 16:\n\n```js\n<Context.Provider>\n  <div/>\n  <div/>\n</Context.Provider>\n```\n\nIt will throw `A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.` because `<Context.Provider>` can only receive a single child element. To fix the error just wrap everyting in a single `<div>`:\n\n```js\n<Context.Provider>\n  <div>\n    <div/>\n    <div/>\n  </div>\n</Context.Provider>\n```\n\n## Size difference to the original:\n|            | original | **mini**\n|------------|----------|-----\n|install size| [**50 kB**](https://packagephobia.now.sh/result?p=create-react-context) | [140 kB](https://packagephobia.now.sh/result?p=mini-create-react-context)\n|minified    | [3.3 kB](https://bundlephobia.com/result?p=create-react-context) | [**2.3kB**](https://bundlephobia.com/result?p=mini-create-react-context)\n|minzip      | 1.3 kB   | **1.0kB**\n","_attachments":{},"homepage":"https://github.com/StringEpsilon/mini-create-react-context#readme","bugs":{"url":"https://github.com/StringEpsilon/mini-create-react-context/issues"},"license":"MIT"}