UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

27 lines (24 loc) 3.45 kB
import getBabelAutoBackend from './babel/getBabelAutoBackend.mjs' import getBabelBackend from './babel/getBabelBackend.mjs' import { Backend } from './backend/Backend.mjs' import getRecastBackend from './recast/getRecastBackend.mjs' export default function chooseGetBackend(parser) { if (parser instanceof Backend) return async () => parser if (!parser) return getBabelAutoBackend if (parser.startsWith('recast/')) { const getWrappedBackend = chooseGetBackend( parser.substring('recast/'.length) ) return getRecastBackend((file, options) => getWrappedBackend(file, { ...options, tokens: true }) ) } switch (parser) { case 'babel/auto': return getBabelAutoBackend case 'babel': return getBabelBackend default: throw new Error(`unknown parser: ${parser}`) } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRCYWJlbEF1dG9CYWNrZW5kIiwiZ2V0QmFiZWxCYWNrZW5kIiwiQmFja2VuZCIsImdldFJlY2FzdEJhY2tlbmQiLCJjaG9vc2VHZXRCYWNrZW5kIiwicGFyc2VyIiwic3RhcnRzV2l0aCIsImdldFdyYXBwZWRCYWNrZW5kIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiZmlsZSIsIm9wdGlvbnMiLCJ0b2tlbnMiLCJFcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jaG9vc2VHZXRCYWNrZW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXRCYWJlbEF1dG9CYWNrZW5kIGZyb20gJy4vYmFiZWwvZ2V0QmFiZWxBdXRvQmFja2VuZCdcbmltcG9ydCBnZXRCYWJlbEJhY2tlbmQgZnJvbSAnLi9iYWJlbC9nZXRCYWJlbEJhY2tlbmQnXG5pbXBvcnQgeyBCYWNrZW5kLCBHZXRCYWNrZW5kIH0gZnJvbSAnLi9iYWNrZW5kL0JhY2tlbmQnXG5pbXBvcnQgZ2V0UmVjYXN0QmFja2VuZCBmcm9tICcuL3JlY2FzdC9nZXRSZWNhc3RCYWNrZW5kJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjaG9vc2VHZXRCYWNrZW5kKFxuICBwYXJzZXI6IHN0cmluZyB8IEJhY2tlbmQgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiBHZXRCYWNrZW5kIHtcbiAgaWYgKHBhcnNlciBpbnN0YW5jZW9mIEJhY2tlbmQpIHJldHVybiBhc3luYyAoKSA9PiBwYXJzZXJcbiAgaWYgKCFwYXJzZXIpIHJldHVybiBnZXRCYWJlbEF1dG9CYWNrZW5kXG4gIGlmIChwYXJzZXIuc3RhcnRzV2l0aCgncmVjYXN0LycpKSB7XG4gICAgY29uc3QgZ2V0V3JhcHBlZEJhY2tlbmQgPSBjaG9vc2VHZXRCYWNrZW5kKFxuICAgICAgcGFyc2VyLnN1YnN0cmluZygncmVjYXN0LycubGVuZ3RoKVxuICAgIClcbiAgICByZXR1cm4gZ2V0UmVjYXN0QmFja2VuZCgoZmlsZTogc3RyaW5nLCBvcHRpb25zPzogeyBbayBpbiBzdHJpbmddPzogYW55IH0pID0+XG4gICAgICBnZXRXcmFwcGVkQmFja2VuZChmaWxlLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHRva2VuczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKVxuICB9XG4gIHN3aXRjaCAocGFyc2VyKSB7XG4gICAgY2FzZSAnYmFiZWwvYXV0byc6XG4gICAgICByZXR1cm4gZ2V0QmFiZWxBdXRvQmFja2VuZFxuICAgIGNhc2UgJ2JhYmVsJzpcbiAgICAgIHJldHVybiBnZXRCYWJlbEJhY2tlbmRcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIHBhcnNlcjogJHtwYXJzZXJ9YClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxtQkFBUCxNQUFnQyw2QkFBaEM7QUFDQSxPQUFPQyxlQUFQLE1BQTRCLHlCQUE1QjtBQUNBLFNBQVNDLE9BQVQsUUFBb0MsbUJBQXBDO0FBQ0EsT0FBT0MsZ0JBQVAsTUFBNkIsMkJBQTdCOztBQUVBLGVBQWUsU0FBU0MsZ0JBQVQ7QUFDYkMsTUFEYTtBQUVEO0VBQ1osSUFBSUEsTUFBTSxZQUFZSCxPQUF0QixFQUErQixPQUFPLFlBQVlHLE1BQW5CO0VBQy9CLElBQUksQ0FBQ0EsTUFBTCxFQUFhLE9BQU9MLG1CQUFQO0VBQ2IsSUFBSUssTUFBTSxDQUFDQyxVQUFQLENBQWtCLFNBQWxCLENBQUosRUFBa0M7SUFDaEMsTUFBTUMsaUJBQWlCLEdBQUdILGdCQUFnQjtJQUN4Q0MsTUFBTSxDQUFDRyxTQUFQLENBQWlCLFVBQVVDLE1BQTNCLENBRHdDLENBQTFDOztJQUdBLE9BQU9OLGdCQUFnQixDQUFDLENBQUNPLElBQUQsRUFBZUMsT0FBZjtJQUN0QkosaUJBQWlCLENBQUNHLElBQUQsRUFBTztNQUN0QixHQUFHQyxPQURtQjtNQUV0QkMsTUFBTSxFQUFFLElBRmMsRUFBUCxDQURJLENBQXZCOzs7RUFNRDtFQUNELFFBQVFQLE1BQVI7SUFDRSxLQUFLLFlBQUw7TUFDRSxPQUFPTCxtQkFBUDtJQUNGLEtBQUssT0FBTDtNQUNFLE9BQU9DLGVBQVA7SUFDRjtNQUNFLE1BQU0sSUFBSVksS0FBSixDQUFXLG1CQUFrQlIsTUFBTyxFQUFwQyxDQUFOLENBTko7O0FBUUQifQ==