137 lines
8.6 KiB
JSON
137 lines
8.6 KiB
JSON
{
|
||
"_args": [
|
||
[
|
||
{
|
||
"raw": "react-proxy@^1.1.7",
|
||
"scope": null,
|
||
"escapedName": "react-proxy",
|
||
"name": "react-proxy",
|
||
"rawSpec": "^1.1.7",
|
||
"spec": ">=1.1.7 <2.0.0",
|
||
"type": "range"
|
||
},
|
||
"/Volumes/2009-SSD/GT2/GT2-iOS/node_modules/react-transform-hmr"
|
||
]
|
||
],
|
||
"_from": "react-proxy@>=1.1.7 <2.0.0",
|
||
"_id": "react-proxy@1.1.8",
|
||
"_inCache": true,
|
||
"_location": "/react-proxy",
|
||
"_nodeVersion": "5.3.0",
|
||
"_npmOperationalInternal": {
|
||
"host": "packages-12-west.internal.npmjs.com",
|
||
"tmp": "tmp/react-proxy-1.1.8.tgz_1457572557360_0.7841383838094771"
|
||
},
|
||
"_npmUser": {
|
||
"name": "gaearon",
|
||
"email": "dan.abramov@gmail.com"
|
||
},
|
||
"_npmVersion": "3.3.12",
|
||
"_phantomChildren": {},
|
||
"_requested": {
|
||
"raw": "react-proxy@^1.1.7",
|
||
"scope": null,
|
||
"escapedName": "react-proxy",
|
||
"name": "react-proxy",
|
||
"rawSpec": "^1.1.7",
|
||
"spec": ">=1.1.7 <2.0.0",
|
||
"type": "range"
|
||
},
|
||
"_requiredBy": [
|
||
"/react-transform-hmr"
|
||
],
|
||
"_resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz",
|
||
"_shasum": "9dbfd9d927528c3aa9f444e4558c37830ab8c26a",
|
||
"_shrinkwrap": null,
|
||
"_spec": "react-proxy@^1.1.7",
|
||
"_where": "/Volumes/2009-SSD/GT2/GT2-iOS/node_modules/react-transform-hmr",
|
||
"author": {
|
||
"name": "Dan Abramov",
|
||
"email": "dan.abramov@me.com",
|
||
"url": "http://github.com/gaearon"
|
||
},
|
||
"bugs": {
|
||
"url": "https://github.com/gaearon/react-proxy/issues"
|
||
},
|
||
"dependencies": {
|
||
"lodash": "^4.6.1",
|
||
"react-deep-force-update": "^1.0.0"
|
||
},
|
||
"description": "Proxies React components without unmounting or losing their state.",
|
||
"devDependencies": {
|
||
"babel-cli": "^6.3.17",
|
||
"babel-core": "^6.3.21",
|
||
"babel-loader": "^6.2.0",
|
||
"babel-plugin-check-es2015-constants": "^6.3.13",
|
||
"babel-plugin-syntax-jsx": "^6.3.13",
|
||
"babel-plugin-transform-class-properties": "^6.5.0",
|
||
"babel-plugin-transform-decorators-legacy": "^1.2.0",
|
||
"babel-plugin-transform-es2015-arrow-functions": "^6.3.13",
|
||
"babel-plugin-transform-es2015-block-scoped-functions": "^6.3.13",
|
||
"babel-plugin-transform-es2015-block-scoping": "^6.3.13",
|
||
"babel-plugin-transform-es2015-classes": "^6.3.13",
|
||
"babel-plugin-transform-es2015-computed-properties": "^6.3.13",
|
||
"babel-plugin-transform-es2015-destructuring": "^6.3.13",
|
||
"babel-plugin-transform-es2015-for-of": "^6.3.13",
|
||
"babel-plugin-transform-es2015-function-name": "^6.3.13",
|
||
"babel-plugin-transform-es2015-literals": "^6.3.13",
|
||
"babel-plugin-transform-es2015-modules-commonjs": "^6.3.13",
|
||
"babel-plugin-transform-es2015-object-super": "^6.3.13",
|
||
"babel-plugin-transform-es2015-parameters": "^6.3.13",
|
||
"babel-plugin-transform-es2015-shorthand-properties": "^6.3.13",
|
||
"babel-plugin-transform-es2015-spread": "^6.3.13",
|
||
"babel-plugin-transform-es2015-sticky-regex": "^6.3.13",
|
||
"babel-plugin-transform-es2015-template-literals": "^6.3.13",
|
||
"babel-plugin-transform-es2015-unicode-regex": "^6.3.13",
|
||
"babel-plugin-transform-flow-strip-types": "^6.5.0",
|
||
"babel-plugin-transform-object-rest-spread": "^6.3.13",
|
||
"babel-plugin-transform-react-display-name": "^6.4.0",
|
||
"babel-plugin-transform-react-jsx": "^6.4.0",
|
||
"babel-preset-es2015": "^6.6.0",
|
||
"babel-preset-react": "^6.5.0",
|
||
"expect": "^1.9.0",
|
||
"mocha": "^2.2.4",
|
||
"react": "^0.13.2",
|
||
"rimraf": "^2.4.2",
|
||
"webpack": "1.4.8"
|
||
},
|
||
"directories": {},
|
||
"dist": {
|
||
"shasum": "9dbfd9d927528c3aa9f444e4558c37830ab8c26a",
|
||
"tarball": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz"
|
||
},
|
||
"files": [
|
||
"dist",
|
||
"modules",
|
||
"src"
|
||
],
|
||
"gitHead": "13f076b17b43a9d53c151931f3629ef1baae42e5",
|
||
"homepage": "https://github.com/gaearon/react-proxy",
|
||
"license": "MIT",
|
||
"main": "modules/index.js",
|
||
"maintainers": [
|
||
{
|
||
"name": "gaearon",
|
||
"email": "dan.abramov@gmail.com"
|
||
}
|
||
],
|
||
"name": "react-proxy",
|
||
"optionalDependencies": {},
|
||
"readme": "# React Proxy [![build status](https://img.shields.io/travis/gaearon/react-proxy/master.svg?style=flat-square)](https://travis-ci.org/gaearon/react-proxy) [![npm version](https://img.shields.io/npm/v/react-proxy.svg?style=flat-square)](https://www.npmjs.com/package/react-proxy)\n\nA generic React component proxy used as the new engine by React Hot Loader. \n\n## 1.x and 2.x\n\nYou are looking at the README from the 1.x branch that is widely in use. However we intend to gradually transition projects such as `react-transform-hmr` to use [2.x that is being developed in master](https://github.com/gaearon/react-proxy/tree/master) instead. Currently we mirror all releases on both branches.\n\n\n## Requirements\n\n* React 0.13+\n\n## Usage\n\nIntended to be used from hot reloading tools like React Hot Loader. \nIf you’re an application developer, it’s unlikely you’ll want to use it directly.\n\n```js\nimport React, { Component } from 'react';\n\nclass ComponentVersion1 extends Component {\n render() {\n return <div>Before hot update.</div>;\n }\n}\n\nclass ComponentVersion2 extends Component {\n render() {\n return <div>After hot update.</div>;\n }\n}\n```\n\nWithout React Proxy:\n\n```js\nconst rootEl = document.getElementById('root');\nReact.render(<ComponentVersion1 />, rootEl);\n\n// Will reset state and kill DOM :-(\nReact.render(<ComponentVersion2 />, rootEl);\n```\n\nWith React Proxy:\n\n```js\nimport { createProxy, getForceUpdate } from 'react-proxy';\n\n// Create a proxy object, given the initial React component class.\nconst proxy = createProxy(ComponentVersion1);\n\n// Obtain a React class that acts exactly like the initial version.\n// This is what we'll use in our app instead of the real component class.\nconst Proxy = proxy.get();\n\n// Render the component (proxy, really).\nReact.render(<Proxy />, rootEl);\n\n// Point the proxy to the new React component class by calling update().\n// Instances will stay mounted and their state will be intact, but their methods will be updated.\n// The update() method returns an array of mounted instances so we can do something with them.\nconst mountedInstances = proxy.update(ComponentVersion2);\n\n// React Proxy also provides us with getForceUpdate() method that works even if the component\n// instance doesn't descend from React.Component, and doesn't have a forceUpdate() method.\nconst forceUpdate = getForceUpdate(React);\n\n// Force-update all the affected instances!\nmountedInstances.forEach(forceUpdate);\n```\n\n## Features\n\n* Supports both classic (`React.createClass()`) and modern (ES6 classes) style\n* Supports classes that don’t descend from `React.Component`\n* Supports classes with strict `shouldComponentUpdate`\n* Supports inherited and base classes (although you shouldn’t use inheritance with React)\n* Supports classic `createClass()` autobinding and modern [`autobind-decorator`](https://github.com/andreypopp/autobind-decorator)\n* Contains an extensive test suite to avoid regressions\n* Preserves `displayName`\n* Preserves enumerability and writability of methods\n* Preserves `toString()` of methods\n* Replaces instance getters and setters\n* Replaces instance methods preserving their identity\n* Replaces bound instance methods preserving their identity\n* Because identity is preserved, instance methods already scheduled for `setInterval` or `setTimeout` are updated\n* Replaces static getters and setters\n* Replaces unbound static methods\n* Replaces static properties unless they were overwritten by code\n\n## Known Limitations\n\n* Does not replace ES7 instance properties\n* Does not replace bound static methods\n* Replacing a method using [`autobind-decorator`](https://github.com/andreypopp/autobind-decorator) causes its identity to change\n\n## Contributing\n\n1. Clone the repository\n2. Run `npm install`\n3. Run `npm run test:watch`\n4. Take a look at the existing tests\n5. Add tests for the failing case you aim to fix and make them pass\n6. Submit a PR!\n\n## License\n\nMIT\n",
|
||
"readmeFilename": "README.md",
|
||
"repository": {
|
||
"type": "git",
|
||
"url": "git+https://github.com/gaearon/react-proxy.git"
|
||
},
|
||
"scripts": {
|
||
"build": "rimraf modules dist && NODE_ENV=babel-es2015 webpack && NODE_ENV=babel-es2015 babel src --out-dir modules",
|
||
"prepublish": "npm run build && npm test",
|
||
"test": "npm run test:babel-es2015 && npm run test:native-es2015",
|
||
"test:babel-es2015": "NODE_ENV=babel-es2015 mocha --compilers js:babel-core/register --recursive ./test",
|
||
"test:native-es2015": "NODE_ENV=native-es2015 mocha --compilers js:babel-core/register --recursive ./test",
|
||
"test:native-es2015:watch": "npm run test:native-es2015 -- --watch",
|
||
"test:watch": "npm run test:babel-es2015 -- --watch"
|
||
},
|
||
"version": "1.1.8"
|
||
}
|