You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

react-proxy

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-proxy - npm Package Compare versions

Comparing version

to
1.1.2

modules/supportsProtoAssignment.js

377

dist/ReactProxy.js

@@ -59,16 +59,28 @@ (function webpackUniversalModuleDefinition(root, factory) {

Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getForceUpdate = exports.createProxy = undefined;
function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }
var _supportsProtoAssignment = __webpack_require__(9);
var _createClassProxy = __webpack_require__(12);
var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment);
exports.createProxy = _interopRequire(_createClassProxy);
var _createClassProxy = __webpack_require__(13);
var _reactDeepForceUpdate = __webpack_require__(39);
var _createClassProxy2 = _interopRequireDefault(_createClassProxy);
exports.getForceUpdate = _interopRequire(_reactDeepForceUpdate);
var _reactDeepForceUpdate = __webpack_require__(40);
var _reactDeepForceUpdate2 = _interopRequireDefault(_reactDeepForceUpdate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
if (!(0, _supportsProtoAssignment2.default)()) {
console.warn('This JavaScript environment does not support __proto__. ' + 'This means that react-proxy is unable to proxy React components. ' + 'Features that rely on react-proxy, such as react-transform-hmr, ' + 'will not function as expected.');
}
exports.createProxy = _createClassProxy2.default;
exports.getForceUpdate = _reactDeepForceUpdate2.default;
/***/ },

@@ -112,3 +124,3 @@ /* 1 */

var getLength = __webpack_require__(30),
var getLength = __webpack_require__(31),
isLength = __webpack_require__(5);

@@ -152,3 +164,3 @@

var isNative = __webpack_require__(35);
var isNative = __webpack_require__(36);

@@ -317,2 +329,22 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = supportsProtoAssignment;
var x = {};
var y = { supports: true };
try {
x.__proto__ = y;
} catch (err) {}
function supportsProtoAssignment() {
return x.supports || false;
};
/***/ },
/* 10 */
/***/ function(module, exports, __webpack_require__) {
/** Used as the `TypeError` message for "Functions" methods. */

@@ -379,3 +411,3 @@ var FUNC_ERROR_TEXT = 'Expected a function';

/***/ },
/* 10 */
/* 11 */
/***/ function(module, exports, __webpack_require__) {

@@ -386,3 +418,3 @@

isObject = __webpack_require__(1),
shimKeys = __webpack_require__(33);
shimKeys = __webpack_require__(34);

@@ -432,5 +464,11 @@ /* Native method references for those with the same name as other `lodash` methods. */

/***/ },
/* 11 */
/* 12 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = bindAutoBindMethods;
/**

@@ -448,8 +486,2 @@ * Copyright 2013-2015, Facebook, Inc.

'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = bindAutoBindMethods;
function bindAutoBindMethod(component, method) {

@@ -501,9 +533,6 @@ var boundMethod = method.bind(component);

}
}
};
;
module.exports = exports['default'];
/***/ },
/* 12 */
/* 13 */
/***/ function(module, exports, __webpack_require__) {

@@ -513,24 +542,28 @@

Object.defineProperty(exports, '__esModule', {
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = proxyClass;
exports.default = createClassProxy;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createPrototypeProxy = __webpack_require__(14);
exports['default'] = proxyClass;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _createPrototypeProxy = __webpack_require__(13);
var _createPrototypeProxy2 = _interopRequireDefault(_createPrototypeProxy);
var _bindAutoBindMethods = __webpack_require__(11);
var _bindAutoBindMethods = __webpack_require__(12);
var _bindAutoBindMethods2 = _interopRequireDefault(_bindAutoBindMethods);
var _deleteUnknownAutoBindMethods = __webpack_require__(14);
var _deleteUnknownAutoBindMethods = __webpack_require__(15);
var _deleteUnknownAutoBindMethods2 = _interopRequireDefault(_deleteUnknownAutoBindMethods);
var _supportsProtoAssignment = __webpack_require__(9);
var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var RESERVED_STATICS = ['length', 'name', 'arguments', 'caller', 'prototype', 'toString'];

@@ -560,3 +593,3 @@

var prototypeProxy = (0, _createPrototypeProxy2['default'])();
var prototypeProxy = (0, _createPrototypeProxy2.default)();
var CurrentClass = undefined;

@@ -592,84 +625,74 @@

function update(_x) {
var _again = true;
function update(NextClass) {
if (typeof NextClass !== 'function') {
throw new Error('Expected a constructor.');
}
_function: while (_again) {
var NextClass = _x;
mountedInstances = undefined;
_again = false;
// Prevent proxy cycles
if (Object.prototype.hasOwnProperty.call(NextClass, '__reactPatchProxy')) {
return update(NextClass.__reactPatchProxy.__getCurrent());
}
if (typeof NextClass !== 'function') {
throw new Error('Expected a constructor.');
}
// Save the next constructor so we call it
CurrentClass = NextClass;
// Prevent proxy cycles
if (Object.prototype.hasOwnProperty.call(NextClass, '__reactPatchProxy')) {
_x = NextClass.__reactPatchProxy.__getCurrent();
_again = true;
continue _function;
}
// Update the prototype proxy with new methods
var mountedInstances = prototypeProxy.update(NextClass.prototype);
// Save the next constructor so we call it
CurrentClass = NextClass;
// Set up the constructor property so accessing the statics work
ProxyClass.prototype.constructor = ProxyClass;
// Update the prototype proxy with new methods
var mountedInstances = prototypeProxy.update(NextClass.prototype);
// Set up the same prototype for inherited statics
ProxyClass.__proto__ = NextClass.__proto__;
// Set up the constructor property so accessing the statics work
ProxyClass.prototype.constructor = ProxyClass;
// Copy static methods and properties
Object.getOwnPropertyNames(NextClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Set up the same prototype for inherited statics
ProxyClass.__proto__ = NextClass.__proto__;
var staticDescriptor = _extends({}, Object.getOwnPropertyDescriptor(NextClass, key), {
configurable: true
});
// Copy static methods and properties
Object.getOwnPropertyNames(NextClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Copy static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
Object.defineProperty(ProxyClass, key, staticDescriptor);
staticDescriptors[key] = staticDescriptor;
}
});
var staticDescriptor = _extends({}, Object.getOwnPropertyDescriptor(NextClass, key), {
configurable: true
});
// Remove old static methods and properties
Object.getOwnPropertyNames(ProxyClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Copy static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
Object.defineProperty(ProxyClass, key, staticDescriptor);
staticDescriptors[key] = staticDescriptor;
}
});
// Skip statics that exist on the next class
if (NextClass.hasOwnProperty(key)) {
return;
}
// Remove old static methods and properties
Object.getOwnPropertyNames(ProxyClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Skip non-configurable statics
var descriptor = Object.getOwnPropertyDescriptor(ProxyClass, key);
if (descriptor && !descriptor.configurable) {
return;
}
// Skip statics that exist on the next class
if (NextClass.hasOwnProperty(key)) {
return;
}
// Delete static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
delete ProxyClass[key];
delete staticDescriptors[key];
}
});
// Skip non-configurable statics
var descriptor = Object.getOwnPropertyDescriptor(ProxyClass, key);
if (descriptor && !descriptor.configurable) {
return;
}
// Try to infer displayName
ProxyClass.displayName = NextClass.displayName || NextClass.name;
// Delete static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
delete ProxyClass[key];
delete staticDescriptors[key];
}
});
// We might have added new methods that need to be auto-bound
mountedInstances.forEach(_bindAutoBindMethods2.default);
mountedInstances.forEach(_deleteUnknownAutoBindMethods2.default);
// Try to infer displayName
ProxyClass.displayName = NextClass.displayName || NextClass.name;
// We might have added new methods that need to be auto-bound
mountedInstances.forEach(_bindAutoBindMethods2['default']);
mountedInstances.forEach(_deleteUnknownAutoBindMethods2['default']);
// Let the user take care of redrawing
return mountedInstances;
}
// Let the user take care of redrawing
return mountedInstances;
};

@@ -706,6 +729,21 @@

module.exports = exports['default'];
function createFallback(Component) {
var CurrentComponent = Component;
return {
get: function get() {
return CurrentComponent;
},
update: function update(NextComponent) {
CurrentComponent = NextComponent;
}
};
}
function createClassProxy(Component) {
return Component.__proto__ && (0, _supportsProtoAssignment2.default)() ? proxyClass(Component) : createFallback(Component);
}
/***/ },
/* 13 */
/* 14 */
/***/ function(module, exports, __webpack_require__) {

@@ -715,16 +753,16 @@

Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = createPrototypeProxy;
exports.default = createPrototypeProxy;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _assign = __webpack_require__(37);
var _lodashObjectAssign = __webpack_require__(36);
var _assign2 = _interopRequireDefault(_assign);
var _lodashObjectAssign2 = _interopRequireDefault(_lodashObjectAssign);
var _difference = __webpack_require__(16);
var _lodashArrayDifference = __webpack_require__(15);
var _difference2 = _interopRequireDefault(_difference);
var _lodashArrayDifference2 = _interopRequireDefault(_lodashArrayDifference);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -762,3 +800,3 @@ function createPrototypeProxy() {

// Copy properties of the original function, if any
(0, _lodashObjectAssign2['default'])(proxiedMethod, current[name]);
(0, _assign2.default)(proxiedMethod, current[name]);
proxiedMethod.toString = proxyToString(name);

@@ -830,5 +868,5 @@

var __reactAutoBindMap = {};
for (var _name in current.__reactAutoBindMap) {
if (current.__reactAutoBindMap.hasOwnProperty(_name)) {
__reactAutoBindMap[_name] = proxy[_name];
for (var name in current.__reactAutoBindMap) {
if (typeof proxy[name] === 'function' && current.__reactAutoBindMap.hasOwnProperty(name)) {
__reactAutoBindMap[name] = proxy[name];
}

@@ -850,4 +888,3 @@ }

var previousName = Object.getOwnPropertyNames(proxy);
var addedNames = (0, _lodashArrayDifference2['default'])(currentNames, previousName);
var removedNames = (0, _lodashArrayDifference2['default'])(previousName, currentNames);
var removedNames = (0, _difference2.default)(previousName, currentNames);

@@ -893,9 +930,6 @@ // Remove properties and methods that are no longer there

};
}
};
;
module.exports = exports['default'];
/***/ },
/* 14 */
/* 15 */
/***/ function(module, exports, __webpack_require__) {

@@ -905,6 +939,6 @@

Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = deleteUnknownAutoBindMethods;
exports.default = deleteUnknownAutoBindMethods;
function shouldDeleteClassicInstanceMethod(component, name) {

@@ -973,3 +1007,2 @@ if (component.__reactAutoBindMap.hasOwnProperty(name)) {

*/
function deleteUnknownAutoBindMethods(component) {

@@ -985,13 +1018,11 @@ var names = Object.getOwnPropertyNames(component);

module.exports = exports['default'];
/***/ },
/* 15 */
/* 16 */
/***/ function(module, exports, __webpack_require__) {
var baseDifference = __webpack_require__(21),
baseFlatten = __webpack_require__(22),
var baseDifference = __webpack_require__(22),
baseFlatten = __webpack_require__(23),
isArrayLike = __webpack_require__(2),
isObjectLike = __webpack_require__(3),
restParam = __webpack_require__(9);
restParam = __webpack_require__(10);

@@ -1024,6 +1055,6 @@ /**

/***/ },
/* 16 */
/* 17 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(27),
/* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(28),
getNative = __webpack_require__(4);

@@ -1061,3 +1092,3 @@

/***/ },
/* 17 */
/* 18 */
/***/ function(module, exports, __webpack_require__) {

@@ -1088,6 +1119,6 @@

/***/ },
/* 18 */
/* 19 */
/***/ function(module, exports, __webpack_require__) {
var keys = __webpack_require__(10);
var keys = __webpack_require__(11);

@@ -1127,7 +1158,7 @@ /**

/***/ },
/* 19 */
/* 20 */
/***/ function(module, exports, __webpack_require__) {
var baseCopy = __webpack_require__(20),
keys = __webpack_require__(10);
var baseCopy = __webpack_require__(21),
keys = __webpack_require__(11);

@@ -1153,3 +1184,3 @@ /**

/***/ },
/* 20 */
/* 21 */
/***/ function(module, exports, __webpack_require__) {

@@ -1183,8 +1214,8 @@

/***/ },
/* 21 */
/* 22 */
/***/ function(module, exports, __webpack_require__) {
var baseIndexOf = __webpack_require__(23),
cacheIndexOf = __webpack_require__(26),
createCache = __webpack_require__(29);
var baseIndexOf = __webpack_require__(24),
cacheIndexOf = __webpack_require__(27),
createCache = __webpack_require__(30);

@@ -1245,6 +1276,6 @@ /** Used as the size to enable large array optimizations. */

/***/ },
/* 22 */
/* 23 */
/***/ function(module, exports, __webpack_require__) {
var arrayPush = __webpack_require__(17),
var arrayPush = __webpack_require__(18),
isArguments = __webpack_require__(7),

@@ -1293,6 +1324,6 @@ isArray = __webpack_require__(8),

/***/ },
/* 23 */
/* 24 */
/***/ function(module, exports, __webpack_require__) {
var indexOfNaN = __webpack_require__(31);
var indexOfNaN = __webpack_require__(32);

@@ -1327,3 +1358,3 @@ /**

/***/ },
/* 24 */
/* 25 */
/***/ function(module, exports, __webpack_require__) {

@@ -1348,6 +1379,6 @@

/***/ },
/* 25 */
/* 26 */
/***/ function(module, exports, __webpack_require__) {
var identity = __webpack_require__(38);
var identity = __webpack_require__(39);

@@ -1394,3 +1425,3 @@ /**

/***/ },
/* 26 */
/* 27 */
/***/ function(module, exports, __webpack_require__) {

@@ -1420,3 +1451,3 @@

/***/ },
/* 27 */
/* 28 */
/***/ function(module, exports, __webpack_require__) {

@@ -1447,8 +1478,8 @@

/***/ },
/* 28 */
/* 29 */
/***/ function(module, exports, __webpack_require__) {
var bindCallback = __webpack_require__(25),
isIterateeCall = __webpack_require__(32),
restParam = __webpack_require__(9);
var bindCallback = __webpack_require__(26),
isIterateeCall = __webpack_require__(33),
restParam = __webpack_require__(10);

@@ -1495,6 +1526,6 @@ /**

/***/ },
/* 29 */
/* 30 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(16),
/* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(17),
getNative = __webpack_require__(4);

@@ -1524,6 +1555,6 @@

/***/ },
/* 30 */
/* 31 */
/***/ function(module, exports, __webpack_require__) {
var baseProperty = __webpack_require__(24);
var baseProperty = __webpack_require__(25);

@@ -1546,3 +1577,3 @@ /**

/***/ },
/* 31 */
/* 32 */
/***/ function(module, exports, __webpack_require__) {

@@ -1576,3 +1607,3 @@

/***/ },
/* 32 */
/* 33 */
/***/ function(module, exports, __webpack_require__) {

@@ -1611,3 +1642,3 @@

/***/ },
/* 33 */
/* 34 */
/***/ function(module, exports, __webpack_require__) {

@@ -1619,3 +1650,3 @@

isLength = __webpack_require__(5),
keysIn = __webpack_require__(37);
keysIn = __webpack_require__(38);

@@ -1660,3 +1691,3 @@ /** Used for native method references. */

/***/ },
/* 34 */
/* 35 */
/***/ function(module, exports, __webpack_require__) {

@@ -1705,6 +1736,6 @@

/***/ },
/* 35 */
/* 36 */
/***/ function(module, exports, __webpack_require__) {
var isFunction = __webpack_require__(34),
var isFunction = __webpack_require__(35),
isObjectLike = __webpack_require__(3);

@@ -1760,8 +1791,8 @@

/***/ },
/* 36 */
/* 37 */
/***/ function(module, exports, __webpack_require__) {
var assignWith = __webpack_require__(18),
baseAssign = __webpack_require__(19),
createAssigner = __webpack_require__(28);
var assignWith = __webpack_require__(19),
baseAssign = __webpack_require__(20),
createAssigner = __webpack_require__(29);

@@ -1810,3 +1841,3 @@ /**

/***/ },
/* 37 */
/* 38 */
/***/ function(module, exports, __webpack_require__) {

@@ -1881,3 +1912,3 @@

/***/ },
/* 38 */
/* 39 */
/***/ function(module, exports, __webpack_require__) {

@@ -1908,3 +1939,3 @@

/***/ },
/* 39 */
/* 40 */
/***/ function(module, exports, __webpack_require__) {

@@ -1911,0 +1942,0 @@

@@ -0,1 +1,7 @@

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = bindAutoBindMethods;
/**

@@ -13,8 +19,2 @@ * Copyright 2013-2015, Facebook, Inc.

'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = bindAutoBindMethods;
function bindAutoBindMethod(component, method) {

@@ -66,5 +66,2 @@ var boundMethod = method.bind(component);

}
}
;
module.exports = exports['default'];
};
'use strict';
Object.defineProperty(exports, '__esModule', {
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = proxyClass;
exports.default = createClassProxy;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports['default'] = proxyClass;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _createPrototypeProxy = require('./createPrototypeProxy');

@@ -25,2 +23,8 @@

var _supportsProtoAssignment = require('./supportsProtoAssignment');
var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var RESERVED_STATICS = ['length', 'name', 'arguments', 'caller', 'prototype', 'toString'];

@@ -50,3 +54,3 @@

var prototypeProxy = (0, _createPrototypeProxy2['default'])();
var prototypeProxy = (0, _createPrototypeProxy2.default)();
var CurrentClass = undefined;

@@ -82,84 +86,74 @@

function update(_x) {
var _again = true;
function update(NextClass) {
if (typeof NextClass !== 'function') {
throw new Error('Expected a constructor.');
}
_function: while (_again) {
var NextClass = _x;
mountedInstances = undefined;
_again = false;
// Prevent proxy cycles
if (Object.prototype.hasOwnProperty.call(NextClass, '__reactPatchProxy')) {
return update(NextClass.__reactPatchProxy.__getCurrent());
}
if (typeof NextClass !== 'function') {
throw new Error('Expected a constructor.');
}
// Save the next constructor so we call it
CurrentClass = NextClass;
// Prevent proxy cycles
if (Object.prototype.hasOwnProperty.call(NextClass, '__reactPatchProxy')) {
_x = NextClass.__reactPatchProxy.__getCurrent();
_again = true;
continue _function;
}
// Update the prototype proxy with new methods
var mountedInstances = prototypeProxy.update(NextClass.prototype);
// Save the next constructor so we call it
CurrentClass = NextClass;
// Set up the constructor property so accessing the statics work
ProxyClass.prototype.constructor = ProxyClass;
// Update the prototype proxy with new methods
var mountedInstances = prototypeProxy.update(NextClass.prototype);
// Set up the same prototype for inherited statics
ProxyClass.__proto__ = NextClass.__proto__;
// Set up the constructor property so accessing the statics work
ProxyClass.prototype.constructor = ProxyClass;
// Copy static methods and properties
Object.getOwnPropertyNames(NextClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Set up the same prototype for inherited statics
ProxyClass.__proto__ = NextClass.__proto__;
var staticDescriptor = _extends({}, Object.getOwnPropertyDescriptor(NextClass, key), {
configurable: true
});
// Copy static methods and properties
Object.getOwnPropertyNames(NextClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Copy static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
Object.defineProperty(ProxyClass, key, staticDescriptor);
staticDescriptors[key] = staticDescriptor;
}
});
var staticDescriptor = _extends({}, Object.getOwnPropertyDescriptor(NextClass, key), {
configurable: true
});
// Remove old static methods and properties
Object.getOwnPropertyNames(ProxyClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Copy static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
Object.defineProperty(ProxyClass, key, staticDescriptor);
staticDescriptors[key] = staticDescriptor;
}
});
// Skip statics that exist on the next class
if (NextClass.hasOwnProperty(key)) {
return;
}
// Remove old static methods and properties
Object.getOwnPropertyNames(ProxyClass).forEach(function (key) {
if (RESERVED_STATICS.indexOf(key) > -1) {
return;
}
// Skip non-configurable statics
var descriptor = Object.getOwnPropertyDescriptor(ProxyClass, key);
if (descriptor && !descriptor.configurable) {
return;
}
// Skip statics that exist on the next class
if (NextClass.hasOwnProperty(key)) {
return;
}
// Delete static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
delete ProxyClass[key];
delete staticDescriptors[key];
}
});
// Skip non-configurable statics
var descriptor = Object.getOwnPropertyDescriptor(ProxyClass, key);
if (descriptor && !descriptor.configurable) {
return;
}
// Try to infer displayName
ProxyClass.displayName = NextClass.displayName || NextClass.name;
// Delete static unless user has redefined it at runtime
if (!wasStaticModifiedByUser(key)) {
delete ProxyClass[key];
delete staticDescriptors[key];
}
});
// We might have added new methods that need to be auto-bound
mountedInstances.forEach(_bindAutoBindMethods2.default);
mountedInstances.forEach(_deleteUnknownAutoBindMethods2.default);
// Try to infer displayName
ProxyClass.displayName = NextClass.displayName || NextClass.name;
// We might have added new methods that need to be auto-bound
mountedInstances.forEach(_bindAutoBindMethods2['default']);
mountedInstances.forEach(_deleteUnknownAutoBindMethods2['default']);
// Let the user take care of redrawing
return mountedInstances;
}
// Let the user take care of redrawing
return mountedInstances;
};

@@ -196,2 +190,17 @@

module.exports = exports['default'];
function createFallback(Component) {
var CurrentComponent = Component;
return {
get: function get() {
return CurrentComponent;
},
update: function update(NextComponent) {
CurrentComponent = NextComponent;
}
};
}
function createClassProxy(Component) {
return Component.__proto__ && (0, _supportsProtoAssignment2.default)() ? proxyClass(Component) : createFallback(Component);
}
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = createPrototypeProxy;
exports.default = createPrototypeProxy;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _assign = require('lodash/object/assign');
var _lodashObjectAssign = require('lodash/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _lodashObjectAssign2 = _interopRequireDefault(_lodashObjectAssign);
var _difference = require('lodash/array/difference');
var _lodashArrayDifference = require('lodash/array/difference');
var _difference2 = _interopRequireDefault(_difference);
var _lodashArrayDifference2 = _interopRequireDefault(_lodashArrayDifference);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -49,3 +49,3 @@ function createPrototypeProxy() {

// Copy properties of the original function, if any
(0, _lodashObjectAssign2['default'])(proxiedMethod, current[name]);
(0, _assign2.default)(proxiedMethod, current[name]);
proxiedMethod.toString = proxyToString(name);

@@ -117,5 +117,5 @@

var __reactAutoBindMap = {};
for (var _name in current.__reactAutoBindMap) {
if (current.__reactAutoBindMap.hasOwnProperty(_name)) {
__reactAutoBindMap[_name] = proxy[_name];
for (var name in current.__reactAutoBindMap) {
if (typeof proxy[name] === 'function' && current.__reactAutoBindMap.hasOwnProperty(name)) {
__reactAutoBindMap[name] = proxy[name];
}

@@ -137,4 +137,3 @@ }

var previousName = Object.getOwnPropertyNames(proxy);
var addedNames = (0, _lodashArrayDifference2['default'])(currentNames, previousName);
var removedNames = (0, _lodashArrayDifference2['default'])(previousName, currentNames);
var removedNames = (0, _difference2.default)(previousName, currentNames);

@@ -180,5 +179,2 @@ // Remove properties and methods that are no longer there

};
}
;
module.exports = exports['default'];
};
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = deleteUnknownAutoBindMethods;
exports.default = deleteUnknownAutoBindMethods;
function shouldDeleteClassicInstanceMethod(component, name) {

@@ -70,3 +70,2 @@ if (component.__reactAutoBindMap.hasOwnProperty(name)) {

*/
function deleteUnknownAutoBindMethods(component) {

@@ -80,4 +79,2 @@ var names = Object.getOwnPropertyNames(component);

});
}
module.exports = exports['default'];
}
'use strict';
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getForceUpdate = exports.createProxy = undefined;
function _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }
var _supportsProtoAssignment = require('./supportsProtoAssignment');
var _supportsProtoAssignment2 = _interopRequireDefault(_supportsProtoAssignment);
var _createClassProxy = require('./createClassProxy');
exports.createProxy = _interopRequire(_createClassProxy);
var _createClassProxy2 = _interopRequireDefault(_createClassProxy);
var _reactDeepForceUpdate = require('react-deep-force-update');
exports.getForceUpdate = _interopRequire(_reactDeepForceUpdate);
var _reactDeepForceUpdate2 = _interopRequireDefault(_reactDeepForceUpdate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
if (!(0, _supportsProtoAssignment2.default)()) {
console.warn('This JavaScript environment does not support __proto__. ' + 'This means that react-proxy is unable to proxy React components. ' + 'Features that rely on react-proxy, such as react-transform-hmr, ' + 'will not function as expected.');
}
exports.createProxy = _createClassProxy2.default;
exports.getForceUpdate = _reactDeepForceUpdate2.default;
{
"name": "react-proxy",
"version": "1.1.1",
"version": "1.1.2",
"description": "Proxies React components without unmounting or losing their state.",

@@ -8,6 +8,11 @@ "main": "modules/index.js",

"build": "rimraf modules dist && webpack && babel src --out-dir modules",
"test": "mocha --compilers js:babel/register --recursive ./test",
"test": "mocha --compilers js:babel-core/register --recursive ./test",
"test:watch": "npm run test -- --watch",
"prepublish": "npm run build"
},
"files": [
"dist",
"modules",
"src"
],
"repository": {

@@ -24,5 +29,9 @@ "type": "git",

"devDependencies": {
"babel": "^5.1.13",
"babel-core": "^5.1.13",
"babel-loader": "^5.0.0",
"babel-cli": "^6.3.17",
"babel-core": "^6.3.21",
"babel-loader": "^6.2.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-es2015": "^6.3.3",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.3.13",
"expect": "^1.9.0",

@@ -29,0 +38,0 @@ "mocha": "^2.2.4",

import createPrototypeProxy from './createPrototypeProxy';
import bindAutoBindMethods from './bindAutoBindMethods';
import deleteUnknownAutoBindMethods from './deleteUnknownAutoBindMethods';
import supportsProtoAssignment from './supportsProtoAssignment';

@@ -171,2 +172,21 @@ const RESERVED_STATICS = [

return proxy;
}
}
function createFallback(Component) {
let CurrentComponent = Component;
return {
get() {
return CurrentComponent;
},
update(NextComponent) {
CurrentComponent = NextComponent;
}
};
}
export default function createClassProxy(Component) {
return Component.__proto__ && supportsProtoAssignment() ?
proxyClass(Component) :
createFallback(Component);
}

@@ -101,3 +101,3 @@ import assign from 'lodash/object/assign';

for (let name in current.__reactAutoBindMap) {
if (current.__reactAutoBindMap.hasOwnProperty(name)) {
if (typeof proxy[name] === 'function' && current.__reactAutoBindMap.hasOwnProperty(name)) {
__reactAutoBindMap[name] = proxy[name];

@@ -120,3 +120,2 @@ }

const previousName = Object.getOwnPropertyNames(proxy);
const addedNames = difference(currentNames, previousName);
const removedNames = difference(previousName, currentNames);

@@ -123,0 +122,0 @@

@@ -1,2 +0,14 @@

export { default as createProxy } from './createClassProxy';
export { default as getForceUpdate } from 'react-deep-force-update';
import supportsProtoAssignment from './supportsProtoAssignment';
if (!supportsProtoAssignment()) {
console.warn(
'This JavaScript environment does not support __proto__. ' +
'This means that react-proxy is unable to proxy React components. ' +
'Features that rely on react-proxy, such as react-transform-hmr, ' +
'will not function as expected.'
);
}
import createProxy from './createClassProxy';
import getForceUpdate from 'react-deep-force-update';
export { createProxy, getForceUpdate };