astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
25 lines (24 loc) • 1.39 kB
TypeScript
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();
}