UNPKG

@ast-grep/napi

Version:

Search and Rewrite code at large scale using precise AST pattern

47 lines (45 loc) 1.65 kB
import type { FileOption, FindConfig, NapiConfig } from './config' import type { NapiLang } from './lang' import type { SgNode, SgRoot } from './sgnode' import type { NamedKinds, TypesMap } from './staticTypes' export declare function parseFiles<M extends TypesMap>( paths: Array<string> | FileOption, callback: (err: null | Error, result: SgRoot<M>) => void, ): Promise<number> /** Parse a string to an ast-grep instance */ export declare function parse<M extends TypesMap>( lang: NapiLang, src: string, ): SgRoot<M> /** * Parse a string to an ast-grep instance asynchronously in threads. * It utilize multiple CPU cores when **concurrent processing sources**. * However, spawning excessive many threads may backfire. * Please refer to libuv doc, nodejs' underlying runtime * for its default behavior and performance tuning tricks. */ export declare function parseAsync<M extends TypesMap>( lang: NapiLang, src: string, ): Promise<SgRoot<M>> /** Get the `kind` number from its string name. */ export declare function kind<M extends TypesMap>( lang: NapiLang, kindName: NamedKinds<M>, ): number /** Compile a string to ast-grep Pattern. */ export declare function pattern<M extends TypesMap>( lang: NapiLang, pattern: string, ): NapiConfig<M> /** * Discover and parse multiple files in Rust. * `lang` specifies the language. * `config` specifies the file path and matcher. * `callback` will receive matching nodes found in a file. */ export declare function findInFiles<M extends TypesMap>( lang: NapiLang, config: FindConfig<M>, callback: (err: null | Error, result: SgNode<M>[]) => void, ): Promise<number>