sortier
Version:
An opinionated code sorter
22 lines (21 loc) • 707 B
JavaScript
import { basename } from "path";
// Parsers
import { parse as flowParse } from "../parsers/flow/index.js";
import { parse as typescriptParse } from "../parsers/typescript/index.js";
export function getParser(inputFilePath) {
const fileName = basename(inputFilePath);
const fileType = fileName.substring(0, fileName.indexOf("."));
let parser;
switch (fileType) {
case "es6":
case "typescript":
parser = typescriptParse;
break;
case "flow":
parser = flowParse;
break;
default:
throw new Error(`Unknown parser passed - ${fileType}. Expected 'flow', 'typescript' or 'es6'.`);
}
return parser;
}