astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
15 lines (13 loc) • 2.28 kB
JavaScript
import fs from 'fs-extra'
import chooseGetBackend from '../chooseGetBackend.mjs'
import Astx from '../Astx.mjs'
export default async function loadFile(
file,
{ source, parser, parserOptions } = {}
) {
if (!source) {
source = await fs.readFile(file, 'utf8')
}
const backend = await chooseGetBackend(parser)(file, parserOptions)
return new Astx(backend, [new backend.t.NodePath(backend.parse(source))])
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImNob29zZUdldEJhY2tlbmQiLCJBc3R4IiwibG9hZEZpbGUiLCJmaWxlIiwic291cmNlIiwicGFyc2VyIiwicGFyc2VyT3B0aW9ucyIsInJlYWRGaWxlIiwiYmFja2VuZCIsInQiLCJOb2RlUGF0aCIsInBhcnNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vZGUvbG9hZEZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFja2VuZCB9IGZyb20gJy4uL2JhY2tlbmQvQmFja2VuZCdcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSdcbmltcG9ydCBjaG9vc2VHZXRCYWNrZW5kIGZyb20gJy4uL2Nob29zZUdldEJhY2tlbmQnXG5pbXBvcnQgQXN0eCBmcm9tICcuLi9Bc3R4J1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBsb2FkRmlsZShcbiAgZmlsZTogc3RyaW5nLFxuICB7XG4gICAgc291cmNlLFxuICAgIHBhcnNlcixcbiAgICBwYXJzZXJPcHRpb25zLFxuICB9OiB7XG4gICAgc291cmNlPzogc3RyaW5nXG4gICAgcGFyc2VyPzogc3RyaW5nIHwgQmFja2VuZFxuICAgIHBhcnNlck9wdGlvbnM/OiB7IFtrIGluIHN0cmluZ10/OiBhbnkgfVxuICB9ID0ge31cbik6IFByb21pc2U8QXN0eD4ge1xuICBpZiAoIXNvdXJjZSkge1xuICAgIHNvdXJjZSA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGUsICd1dGY4JylcbiAgfVxuICBjb25zdCBiYWNrZW5kOiBCYWNrZW5kID0gYXdhaXQgY2hvb3NlR2V0QmFja2VuZChwYXJzZXIpKGZpbGUsIHBhcnNlck9wdGlvbnMpXG4gIHJldHVybiBuZXcgQXN0eChiYWNrZW5kLCBbbmV3IGJhY2tlbmQudC5Ob2RlUGF0aChiYWNrZW5kLnBhcnNlKHNvdXJjZSkpXSlcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU9BLEVBQVAsTUFBZSxVQUFmO0FBQ0EsT0FBT0MsZ0JBQVAsTUFBNkIscUJBQTdCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjs7QUFFQSxlQUFlLGVBQWVDLFFBQWY7QUFDYkMsSUFEYTtBQUViO0VBQ0VDLE1BREY7RUFFRUMsTUFGRjtFQUdFQyxhQUhGOzs7OztBQVFJLEVBVlM7QUFXRTtFQUNmLElBQUksQ0FBQ0YsTUFBTCxFQUFhO0lBQ1hBLE1BQU0sR0FBRyxNQUFNTCxFQUFFLENBQUNRLFFBQUgsQ0FBWUosSUFBWixFQUFrQixNQUFsQixDQUFmO0VBQ0Q7RUFDRCxNQUFNSyxPQUFnQixHQUFHLE1BQU1SLGdCQUFnQixDQUFDSyxNQUFELENBQWhCLENBQXlCRixJQUF6QixFQUErQkcsYUFBL0IsQ0FBL0I7RUFDQSxPQUFPLElBQUlMLElBQUosQ0FBU08sT0FBVCxFQUFrQixDQUFDLElBQUlBLE9BQU8sQ0FBQ0MsQ0FBUixDQUFVQyxRQUFkLENBQXVCRixPQUFPLENBQUNHLEtBQVIsQ0FBY1AsTUFBZCxDQUF2QixDQUFELENBQWxCLENBQVA7QUFDRCJ9