ast-types
Version:
Esprima-compatible implementation of the Mozilla JS Parser API
44 lines (43 loc) • 1.99 kB
TypeScript
import { Plugin } from "./types";
export default function (plugins: Plugin<any>[]): {
Type: {
or(...types: any[]): import("./types").Type<any>;
from<T>(value: any, name?: string | undefined): import("./types").Type<T>;
def(typeName: string): import("./types").Def<any>;
hasDef(typeName: string): boolean;
};
builtInTypes: {
string: import("./types").Type<string>;
function: import("./types").Type<Function>;
array: import("./types").Type<any[]>;
object: import("./types").Type<{
[key: string]: any;
}>;
RegExp: import("./types").Type<RegExp>;
Date: import("./types").Type<Date>;
number: import("./types").Type<number>;
boolean: import("./types").Type<boolean>;
null: import("./types").Type<null>;
undefined: import("./types").Type<undefined>;
BigInt: import("./types").Type<BigInt>;
};
namedTypes: import("./gen/namedTypes").NamedTypes;
builders: import("./gen/builders").builders;
defineMethod: (name: any, func?: Function | undefined) => Function;
getFieldNames: (object: any) => string[];
getFieldValue: (object: any, fieldName: any) => any;
eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void;
someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean;
getSupertypeNames: (typeName: string) => string[];
getBuilderName: (typeName: any) => any;
astNodesAreEquivalent: {
(a: any, b: any, problemPath?: any): boolean;
assert(a: any, b: any): void;
};
finalize: () => void;
Path: import("./path").PathConstructor;
NodePath: import("./node-path").NodePathConstructor;
PathVisitor: import("./path-visitor").PathVisitorConstructor;
use: <T_1>(plugin: Plugin<T_1>) => T_1;
visit: <M = {}>(node: import("./types").ASTNode, methods?: import("./main").Visitor<M> | undefined) => any;
};