prettier/parser.js

35 lines
838 B
JavaScript

"use strict";
function parse(text, opts) {
let parseFunction;
if (opts.parser === "flow") {
parseFunction = eval("require")("./src/parser-flow");
} else if (opts.parser === "typescript") {
parseFunction = eval("require")("./src/parser-typescript");
} else if (opts.parser === "postcss") {
parseFunction = eval("require")("./src/parser-postcss");
} else {
parseFunction = eval("require")("./src/parser-babylon");
}
try {
return parseFunction(text);
} catch (error) {
const loc = error.loc;
if (loc) {
const codeFrame = require("babel-code-frame");
error.codeFrame = codeFrame(text, loc.line, loc.column + 1, {
highlightCode: true
});
error.message += "\n" + error.codeFrame;
throw error;
}
throw error.stack;
}
}
module.exports = { parse };