UNPKG

astx

Version:

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

25 lines (24 loc) 1.39 kB
import { NodePath, Statement, Expression, Location, Comment } from '../types'; import * as AstTypes from 'ast-types'; export declare type GetBackend = (file: string, options?: { [k in string]?: any; }) => Promise<Backend>; export declare abstract class Backend<Node = any> { abstract readonly t: typeof AstTypes; abstract readonly parse: (code: string) => Node; abstract readonly parseExpression: (code: string) => Expression; abstract readonly parseStatements: (code: string) => Statement[]; readonly template: { readonly statements: (code: TemplateStringsArray | string[] | string, ...nodes: any[]) => Statement[]; readonly statement: (code: TemplateStringsArray | string[] | string, ...nodes: any[]) => Statement; readonly expression: (code: TemplateStringsArray | string[] | string, ...nodes: any[]) => Expression; }; readonly parsePattern: (strings: TemplateStringsArray | string | string[], ...quasis: any[]) => NodePath | NodePath[]; readonly parsePatternToNodes: (strings: TemplateStringsArray | string | string[], ...quasis: any[]) => Node | Node[]; abstract readonly generate: (node: Node) => { code: string; }; abstract readonly location: (node: Node) => Location; abstract readonly comments: (node: Node, kind?: 'leading' | 'inner' | 'trailing') => Iterable<Comment>; constructor(); }