25 lines
1006 B
Plaintext
25 lines
1006 B
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.parseExpression = void 0;
|
|
const astro_eslint_parser_1 = require("astro-eslint-parser");
|
|
const resolve_parser_1 = require("../../utils/resolve-parser");
|
|
function parseExpression(code) {
|
|
const result = (0, resolve_parser_1.resolveParser)().parseForESLint(`(
|
|
${code}
|
|
)`, { range: true, loc: true });
|
|
const statement = result.ast.body[0];
|
|
const expression = statement.expression;
|
|
(0, astro_eslint_parser_1.traverseNodes)(expression, {
|
|
visitorKeys: result.visitorKeys,
|
|
enterNode(node) {
|
|
node.loc.start = Object.assign(Object.assign({}, node.loc.start), { line: node.loc.start.line - 1 });
|
|
node.loc.end = Object.assign(Object.assign({}, node.loc.end), { line: node.loc.end.line - 1 });
|
|
node.range = [node.range[0] - 2, node.range[1] - 2];
|
|
},
|
|
leaveNode() {
|
|
},
|
|
});
|
|
return expression;
|
|
}
|
|
exports.parseExpression = parseExpression;
|