Socket
Socket
Sign inDemoInstall

babel-types

Package Overview
Dependencies
Maintainers
3
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-types - npm Package Compare versions

Comparing version 7.0.0-alpha.9 to 7.0.0-alpha.10

165

lib/converters.js

@@ -39,102 +39,111 @@ "use strict";

function toSequenceExpression(nodes, scope) {
if (!nodes || !nodes.length) return;
function gatherSequenceExpressions(nodes, scope, declars) {
var exprs = [];
var ensureLastUndefined = true;
var declars = [];
var bailed = false;
for (var _iterator = nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
var result = convert(nodes);
if (bailed) return;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
for (var i = 0; i < declars.length; i++) {
scope.push(declars[i]);
}
var node = _ref;
return result;
ensureLastUndefined = false;
function convert(nodes) {
var ensureLastUndefined = false;
var exprs = [];
if (t.isExpression(node)) {
exprs.push(node);
} else if (t.isExpressionStatement(node)) {
exprs.push(node.expression);
} else if (t.isVariableDeclaration(node)) {
if (node.kind !== "var") return;
for (var _iterator = nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
for (var _iterator2 = node.declarations, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var node = _ref;
var declar = _ref2;
if (t.isExpression(node)) {
exprs.push(node);
} else if (t.isExpressionStatement(node)) {
exprs.push(node.expression);
} else if (t.isVariableDeclaration(node)) {
if (node.kind !== "var") return bailed = true;
var bindings = t.getBindingIdentifiers(declar);
for (var key in bindings) {
declars.push({
kind: node.kind,
id: bindings[key]
});
}
for (var _iterator2 = node.declarations, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (declar.init) {
exprs.push(t.assignmentExpression("=", declar.id, declar.init));
}
}
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
ensureLastUndefined = true;
} else if (t.isIfStatement(node)) {
var consequent = node.consequent ? gatherSequenceExpressions([node.consequent], scope, declars) : scope.buildUndefinedNode();
var alternate = node.alternate ? gatherSequenceExpressions([node.alternate], scope, declars) : scope.buildUndefinedNode();
if (!consequent || !alternate) return;
var declar = _ref2;
exprs.push(t.conditionalExpression(node.test, consequent, alternate));
} else if (t.isBlockStatement(node)) {
var body = gatherSequenceExpressions(node.body, scope, declars);
if (!body) return;
var bindings = t.getBindingIdentifiers(declar);
for (var key in bindings) {
declars.push({
kind: node.kind,
id: bindings[key]
});
}
exprs.push(body);
} else if (t.isEmptyStatement(node)) {
ensureLastUndefined = true;
} else {
return;
}
}
if (declar.init) {
exprs.push(t.assignmentExpression("=", declar.id, declar.init));
}
}
if (ensureLastUndefined) {
exprs.push(scope.buildUndefinedNode());
}
ensureLastUndefined = true;
continue;
} else if (t.isIfStatement(node)) {
var consequent = node.consequent ? convert([node.consequent]) : scope.buildUndefinedNode();
var alternate = node.alternate ? convert([node.alternate]) : scope.buildUndefinedNode();
if (exprs.length === 1) {
return exprs[0];
} else {
return t.sequenceExpression(exprs);
}
}
if (consequent === true || alternate === true) {
return bailed = true;
}
function toSequenceExpression(nodes, scope) {
if (!nodes || !nodes.length) return;
exprs.push(t.conditionalExpression(node.test, consequent, alternate));
} else if (t.isBlockStatement(node)) {
exprs.push(convert(node.body));
} else if (t.isEmptyStatement(node)) {
ensureLastUndefined = true;
continue;
} else {
return bailed = true;
}
var declars = [];
var result = gatherSequenceExpressions(nodes, scope, declars);
if (!result) return;
ensureLastUndefined = false;
}
for (var _iterator3 = declars, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (ensureLastUndefined || exprs.length === 0) {
exprs.push(scope.buildUndefinedNode());
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref3 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref3 = _i3.value;
}
if (exprs.length === 1) {
return exprs[0];
} else {
return t.sequenceExpression(exprs);
}
var declar = _ref3;
scope.push(declar);
}
return result;
}

@@ -141,0 +150,0 @@

@@ -509,3 +509,3 @@ "use strict";

value: {
validate: (0, _index2.assertNodeType)("Expression")
validate: (0, _index2.assertNodeType)("Expression", "Pattern", "RestElement")
},

@@ -512,0 +512,0 @@ shorthand: {

@@ -30,3 +30,3 @@ "use strict";

elements: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Expression")))
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Identifier", "Pattern", "RestElement")))
},

@@ -233,6 +233,6 @@ decorators: {

meta: {
validate: (0, _index.assertValueType)("string")
validate: (0, _index.assertNodeType)("Identifier")
},
property: {
validate: (0, _index.assertValueType)("string")
validate: (0, _index.assertNodeType)("Identifier")
}

@@ -239,0 +239,0 @@ }

@@ -246,2 +246,8 @@ "use strict";

(0, _index2.default)("ObjectTypeSpreadProperty", {
visitor: ["argument"],
aliases: ["Flow", "UserWhitespacable"],
fields: {}
});
(0, _index2.default)("QualifiedTypeIdentifier", {

@@ -248,0 +254,0 @@ visitor: ["id", "qualification"],

@@ -122,2 +122,4 @@ "use strict";

});
exports.isRestProperty = isRestProperty;
exports.isSpreadProperty = isSpreadProperty;
exports.is = is;

@@ -356,2 +358,9 @@ exports.isType = isType;

function isRestProperty() {
return t.isRestElement.apply(t, arguments);
}
function isSpreadProperty() {
return t.isSpreadElement.apply(t, arguments);
}
t.FLIPPED_ALIAS_KEYS = {};

@@ -358,0 +367,0 @@

@@ -205,3 +205,3 @@ "use strict";

function isNodesEquivalent(a, b) {
if ((typeof a === "undefined" ? "undefined" : _typeof(a)) !== "object" || (typeof a === "undefined" ? "undefined" : _typeof(a)) !== "object" || a == null || b == null) {
if ((typeof a === "undefined" ? "undefined" : _typeof(a)) !== "object" || (typeof b === "undefined" ? "undefined" : _typeof(b)) !== "object" || a == null || b == null) {
return a === b;

@@ -208,0 +208,0 @@ }

{
"name": "babel-types",
"version": "7.0.0-alpha.9",
"version": "7.0.0-alpha.10",
"description": "Babel Types is a Lodash-esque utility library for AST nodes",

@@ -16,4 +16,5 @@ "author": "Sebastian McKenzie <sebmck@gmail.com>",

"devDependencies": {
"babel-generator": "7.0.0-alpha.10",
"babylon": "^7.0.0-beta.8"
}
}

@@ -49,3 +49,3 @@ # babel-types

- `elements`: `Array<Expression>` (required)
- `elements`: `Array<Identifier | Pattern | RestElement>` (required)
- `typeAnnotation` (required)

@@ -1183,4 +1183,4 @@ - `decorators`: `Array<Decorator>` (default: `null`)

- `meta`: `string` (required)
- `property`: `string` (required)
- `meta`: `Identifier` (required)
- `property`: `Identifier` (required)

@@ -1359,3 +1359,3 @@ ---

- `key`if computed then `Expression` else `Identifier | Literal` (required)
- `value`: `Expression` (required)
- `value`: `Expression | Pattern | RestElement` (required)
- `computed`: `boolean` (default: `false`)

@@ -1424,2 +1424,15 @@ - `shorthand`: `boolean` (default: `false`)

### objectTypeSpreadProperty
```javascript
t.objectTypeSpreadProperty(argument)
```
See also `t.isObjectTypeSpreadProperty(node, opts)` and `t.assertObjectTypeSpreadProperty(node, opts)`.
Aliases: `Flow`, `UserWhitespacable`
- `argument` (required)
---
### parenthesizedExpression

@@ -1426,0 +1439,0 @@ ```javascript

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc