UNPKG

astx

Version:

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

25 lines (23 loc) 4.32 kB
import { parsePatternToNodes, parsePattern } from './parse.mjs' import * as template from './template.mjs' export class Backend { t parse parseExpression parseStatements template parsePattern parsePatternToNodes generate location comments constructor() { this.template = { statements: template.statements.bind(this), statement: template.statement.bind(this), expression: template.expression.bind(this), } this.parsePattern = parsePattern.bind(this) this.parsePatternToNodes = parsePatternToNodes.bind(this) } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZVBhdHRlcm5Ub05vZGVzIiwicGFyc2VQYXR0ZXJuIiwidGVtcGxhdGUiLCJCYWNrZW5kIiwidCIsInBhcnNlIiwicGFyc2VFeHByZXNzaW9uIiwicGFyc2VTdGF0ZW1lbnRzIiwiZ2VuZXJhdGUiLCJsb2NhdGlvbiIsImNvbW1lbnRzIiwiY29uc3RydWN0b3IiLCJzdGF0ZW1lbnRzIiwiYmluZCIsInN0YXRlbWVudCIsImV4cHJlc3Npb24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFja2VuZC9CYWNrZW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQYXRoLCBTdGF0ZW1lbnQsIEV4cHJlc3Npb24sIExvY2F0aW9uLCBDb21tZW50IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBwYXJzZVBhdHRlcm5Ub05vZGVzLCBwYXJzZVBhdHRlcm4gfSBmcm9tICcuL3BhcnNlJ1xuaW1wb3J0ICogYXMgdGVtcGxhdGUgZnJvbSAnLi90ZW1wbGF0ZSdcbmltcG9ydCAqIGFzIEFzdFR5cGVzIGZyb20gJ2FzdC10eXBlcydcblxuZXhwb3J0IHR5cGUgR2V0QmFja2VuZCA9IChcbiAgZmlsZTogc3RyaW5nLFxuICBvcHRpb25zPzogeyBbayBpbiBzdHJpbmddPzogYW55IH1cbikgPT4gUHJvbWlzZTxCYWNrZW5kPlxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFja2VuZDxOb2RlID0gYW55PiB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IHQ6IHR5cGVvZiBBc3RUeXBlc1xuICBhYnN0cmFjdCByZWFkb25seSBwYXJzZTogKGNvZGU6IHN0cmluZykgPT4gTm9kZVxuICBhYnN0cmFjdCByZWFkb25seSBwYXJzZUV4cHJlc3Npb246IChjb2RlOiBzdHJpbmcpID0+IEV4cHJlc3Npb25cbiAgYWJzdHJhY3QgcmVhZG9ubHkgcGFyc2VTdGF0ZW1lbnRzOiAoY29kZTogc3RyaW5nKSA9PiBTdGF0ZW1lbnRbXVxuICByZWFkb25seSB0ZW1wbGF0ZToge1xuICAgIHJlYWRvbmx5IHN0YXRlbWVudHM6IChcbiAgICAgIGNvZGU6IFRlbXBsYXRlU3RyaW5nc0FycmF5IHwgc3RyaW5nW10gfCBzdHJpbmcsXG4gICAgICAuLi5ub2RlczogYW55W11cbiAgICApID0+IFN0YXRlbWVudFtdXG4gICAgcmVhZG9ubHkgc3RhdGVtZW50OiAoXG4gICAgICBjb2RlOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSB8IHN0cmluZ1tdIHwgc3RyaW5nLFxuICAgICAgLi4ubm9kZXM6IGFueVtdXG4gICAgKSA9PiBTdGF0ZW1lbnRcbiAgICByZWFkb25seSBleHByZXNzaW9uOiAoXG4gICAgICBjb2RlOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSB8IHN0cmluZ1tdIHwgc3RyaW5nLFxuICAgICAgLi4ubm9kZXM6IGFueVtdXG4gICAgKSA9PiBFeHByZXNzaW9uXG4gIH1cbiAgcmVhZG9ubHkgcGFyc2VQYXR0ZXJuOiAoXG4gICAgc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXkgfCBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAuLi5xdWFzaXM6IGFueVtdXG4gICkgPT4gTm9kZVBhdGggfCBOb2RlUGF0aFtdXG4gIHJlYWRvbmx5IHBhcnNlUGF0dGVyblRvTm9kZXM6IChcbiAgICBzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSB8IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIC4uLnF1YXNpczogYW55W11cbiAgKSA9PiBOb2RlIHwgTm9kZVtdXG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZ2VuZXJhdGU6IChub2RlOiBOb2RlKSA9PiB7IGNvZGU6IHN0cmluZyB9XG4gIGFic3RyYWN0IHJlYWRvbmx5IGxvY2F0aW9uOiAobm9kZTogTm9kZSkgPT4gTG9jYXRpb25cbiAgYWJzdHJhY3QgcmVhZG9ubHkgY29tbWVudHM6IChcbiAgICBub2RlOiBOb2RlLFxuICAgIGtpbmQ/OiAnbGVhZGluZycgfCAnaW5uZXInIHwgJ3RyYWlsaW5nJ1xuICApID0+IEl0ZXJhYmxlPENvbW1lbnQ+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy50ZW1wbGF0ZSA9IHtcbiAgICAgIHN0YXRlbWVudHM6IHRlbXBsYXRlLnN0YXRlbWVudHMuYmluZCh0aGlzKSxcbiAgICAgIHN0YXRlbWVudDogdGVtcGxhdGUuc3RhdGVtZW50LmJpbmQodGhpcyksXG4gICAgICBleHByZXNzaW9uOiB0ZW1wbGF0ZS5leHByZXNzaW9uLmJpbmQodGhpcyksXG4gICAgfVxuICAgIHRoaXMucGFyc2VQYXR0ZXJuID0gcGFyc2VQYXR0ZXJuLmJpbmQodGhpcylcbiAgICB0aGlzLnBhcnNlUGF0dGVyblRvTm9kZXMgPSBwYXJzZVBhdHRlcm5Ub05vZGVzLmJpbmQodGhpcykgYXMgYW55XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQVNBLG1CQUFULEVBQThCQyxZQUE5QixRQUFrRCxTQUFsRDtBQUNBLE9BQU8sS0FBS0MsUUFBWixNQUEwQixZQUExQjs7Ozs7Ozs7QUFRQSxPQUFPLE1BQWVDLE9BQWYsQ0FBbUM7RUFDdEJDLENBQUM7RUFDREMsS0FBSztFQUNMQyxlQUFlO0VBQ2ZDLGVBQWU7RUFDeEJMLFFBQVE7Ozs7Ozs7Ozs7Ozs7O0VBY1JELFlBQVk7Ozs7RUFJWkQsbUJBQW1COzs7OztFQUtWUSxRQUFRO0VBQ1JDLFFBQVE7RUFDUkMsUUFBUTs7Ozs7RUFLMUJDLFdBQVcsR0FBRztJQUNaLEtBQUtULFFBQUwsR0FBZ0I7TUFDZFUsVUFBVSxFQUFFVixRQUFRLENBQUNVLFVBQVQsQ0FBb0JDLElBQXBCLENBQXlCLElBQXpCLENBREU7TUFFZEMsU0FBUyxFQUFFWixRQUFRLENBQUNZLFNBQVQsQ0FBbUJELElBQW5CLENBQXdCLElBQXhCLENBRkc7TUFHZEUsVUFBVSxFQUFFYixRQUFRLENBQUNhLFVBQVQsQ0FBb0JGLElBQXBCLENBQXlCLElBQXpCLENBSEUsRUFBaEI7O0lBS0EsS0FBS1osWUFBTCxHQUFvQkEsWUFBWSxDQUFDWSxJQUFiLENBQWtCLElBQWxCLENBQXBCO0lBQ0EsS0FBS2IsbUJBQUwsR0FBMkJBLG1CQUFtQixDQUFDYSxJQUFwQixDQUF5QixJQUF6QixDQUEzQjtFQUNELENBM0N1QyJ9