babel-types
Advanced tools
Comparing version 6.18.0 to 6.19.0
"use strict"; | ||
exports.__esModule = true; | ||
exports.createTypeAnnotationBasedOnTypeof = exports.removeTypeDuplicates = exports.createUnionTypeAnnotation = exports.valueToNode = exports.toBlock = exports.toExpression = exports.toStatement = exports.toBindingIdentifierName = exports.toIdentifier = exports.toKeyAlias = exports.toSequenceExpression = exports.toComputedKey = exports.isImmutable = exports.isScope = exports.isSpecifierDefault = exports.isVar = exports.isBlockScoped = exports.isLet = exports.isValidIdentifier = exports.isReferenced = exports.isBinding = exports.getOuterBindingIdentifiers = exports.getBindingIdentifiers = exports.TYPES = exports.react = exports.DEPRECATED_KEYS = exports.BUILDER_KEYS = exports.NODE_FIELDS = exports.ALIAS_KEYS = exports.VISITOR_KEYS = exports.NOT_LOCAL_BINDING = exports.BLOCK_SCOPED_SYMBOL = exports.INHERIT_KEYS = exports.UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = exports.NUMBER_UNARY_OPERATORS = exports.BOOLEAN_UNARY_OPERATORS = exports.BINARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = exports.EQUALITY_BINARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = exports.UPDATE_OPERATORS = exports.LOGICAL_OPERATORS = exports.COMMENT_KEYS = exports.FOR_INIT_KEYS = exports.FLATTENABLE_KEYS = exports.STATEMENT_OR_BLOCK_KEYS = undefined; | ||
exports.createTypeAnnotationBasedOnTypeof = exports.removeTypeDuplicates = exports.createUnionTypeAnnotation = exports.valueToNode = exports.toBlock = exports.toExpression = exports.toStatement = exports.toBindingIdentifierName = exports.toIdentifier = exports.toKeyAlias = exports.toSequenceExpression = exports.toComputedKey = exports.isNodesEquivalent = exports.isImmutable = exports.isScope = exports.isSpecifierDefault = exports.isVar = exports.isBlockScoped = exports.isLet = exports.isValidIdentifier = exports.isReferenced = exports.isBinding = exports.getOuterBindingIdentifiers = exports.getBindingIdentifiers = exports.TYPES = exports.react = exports.DEPRECATED_KEYS = exports.BUILDER_KEYS = exports.NODE_FIELDS = exports.ALIAS_KEYS = exports.VISITOR_KEYS = exports.NOT_LOCAL_BINDING = exports.BLOCK_SCOPED_SYMBOL = exports.INHERIT_KEYS = exports.UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = exports.NUMBER_UNARY_OPERATORS = exports.BOOLEAN_UNARY_OPERATORS = exports.BINARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = exports.EQUALITY_BINARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = exports.UPDATE_OPERATORS = exports.LOGICAL_OPERATORS = exports.COMMENT_KEYS = exports.FOR_INIT_KEYS = exports.FLATTENABLE_KEYS = exports.STATEMENT_OR_BLOCK_KEYS = undefined; | ||
@@ -232,2 +232,8 @@ var _getOwnPropertySymbols = require("babel-runtime/core-js/object/get-own-property-symbols"); | ||
}); | ||
Object.defineProperty(exports, "isNodesEquivalent", { | ||
enumerable: true, | ||
get: function get() { | ||
return _validators.isNodesEquivalent; | ||
} | ||
}); | ||
@@ -234,0 +240,0 @@ var _converters = require("./converters"); |
@@ -5,2 +5,10 @@ "use strict"; | ||
var _keys = require("babel-runtime/core-js/object/keys"); | ||
var _keys2 = _interopRequireDefault(_keys); | ||
var _typeof2 = require("babel-runtime/helpers/typeof"); | ||
var _typeof3 = _interopRequireDefault(_typeof2); | ||
var _getIterator2 = require("babel-runtime/core-js/get-iterator"); | ||
@@ -19,2 +27,3 @@ | ||
exports.isImmutable = isImmutable; | ||
exports.isNodesEquivalent = isNodesEquivalent; | ||
@@ -203,2 +212,55 @@ var _retrievers = require("./retrievers"); | ||
return false; | ||
} | ||
function isNodesEquivalent(a, b) { | ||
if ((typeof a === "undefined" ? "undefined" : (0, _typeof3.default)(a)) !== "object" || (typeof a === "undefined" ? "undefined" : (0, _typeof3.default)(a)) !== "object" || a == null || b == null) { | ||
return a === b; | ||
} | ||
if (a.type !== b.type) { | ||
return false; | ||
} | ||
var fields = (0, _keys2.default)(t.NODE_FIELDS[a.type] || a.type); | ||
for (var _iterator2 = fields, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) { | ||
var _ref2; | ||
if (_isArray2) { | ||
if (_i2 >= _iterator2.length) break; | ||
_ref2 = _iterator2[_i2++]; | ||
} else { | ||
_i2 = _iterator2.next(); | ||
if (_i2.done) break; | ||
_ref2 = _i2.value; | ||
} | ||
var field = _ref2; | ||
if ((0, _typeof3.default)(a[field]) !== (0, _typeof3.default)(b[field])) { | ||
return false; | ||
} | ||
if (Array.isArray(a[field])) { | ||
if (!Array.isArray(b[field])) { | ||
return false; | ||
} | ||
if (a[field].length !== b[field].length) { | ||
return false; | ||
} | ||
for (var i = 0; i < a[field].length; i++) { | ||
if (!isNodesEquivalent(a[field][i], b[field][i])) { | ||
return false; | ||
} | ||
} | ||
continue; | ||
} | ||
if (!isNodesEquivalent(a[field], b[field])) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} |
{ | ||
"name": "babel-types", | ||
"version": "6.18.0", | ||
"version": "6.19.0", | ||
"description": "Babel Types is a Lodash-esque utility library for AST nodes", | ||
@@ -15,3 +15,6 @@ "author": "Sebastian McKenzie <sebmck@gmail.com>", | ||
"to-fast-properties": "^1.0.1" | ||
}, | ||
"devDependencies": { | ||
"babylon": "^6.8.2" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
130921
3007
1