react-editable-json-tree
Version:
React Editable Json Tree
64 lines (51 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isComponentWillChange = exports.getObjectType = undefined;
var _iterator = require('babel-runtime/core-js/symbol/iterator');
var _iterator2 = _interopRequireDefault(_iterator);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
* Author: Alexandre Havrileck (Oxyno-zeta)
* Date: 19/10/16
* Licence: See Readme
*/
/* ************************************* */
/* ******** IMPORTS ******** */
/* ************************************* */
/* ************************************* */
/* ******** PRIVATE FUNCTIONS ******** */
/* ************************************* */
/* ************************************* */
/* ******** PUBLIC FUNCTIONS ******** */
/* ************************************* */
/**
* Get Object type.
* @param obj {*} object to get type
* @returns {*}
*/
function getObjectType(obj) {
if (obj !== null && (typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) === 'object' && !Array.isArray(obj) && typeof obj[_iterator2.default] === 'function') {
return 'Iterable';
}
return Object.prototype.toString.call(obj).slice(8, -1);
}
/**
* Is Component will change ?
* @param oldValue {*} old value
* @param newValue {*} new value
* @returns {boolean} result
*/
function isComponentWillChange(oldValue, newValue) {
var oldType = getObjectType(oldValue);
var newType = getObjectType(newValue);
return (oldType === 'Function' || newType === 'Function') && newType !== oldType;
}
/* ************************************* */
/* ******** EXPORTS ******** */
/* ************************************* */
exports.getObjectType = getObjectType;
exports.isComponentWillChange = isComponentWillChange;