You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
647 B
30 lines
647 B
|
3 years ago
|
"use strict";
|
||
|
|
|
||
|
|
Object.defineProperty(exports, "__esModule", {
|
||
|
|
value: true
|
||
|
|
});
|
||
|
|
exports.default = toExpression;
|
||
|
|
|
||
|
|
var _generated = require("../validators/generated");
|
||
|
|
|
||
|
|
function toExpression(node) {
|
||
|
|
if ((0, _generated.isExpressionStatement)(node)) {
|
||
|
|
node = node.expression;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ((0, _generated.isExpression)(node)) {
|
||
|
|
return node;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ((0, _generated.isClass)(node)) {
|
||
|
|
node.type = "ClassExpression";
|
||
|
|
} else if ((0, _generated.isFunction)(node)) {
|
||
|
|
node.type = "FunctionExpression";
|
||
|
|
}
|
||
|
|
|
||
|
|
if (!(0, _generated.isExpression)(node)) {
|
||
|
|
throw new Error(`cannot turn ${node.type} to an expression`);
|
||
|
|
}
|
||
|
|
|
||
|
|
return node;
|
||
|
|
}
|