ast-grepのrule
yamlで書かれた、ast-grep用のクエリ
rule毎に、idなり対象言語(language)を書く
ワンライナーのPatternより複雑なクエリが書ける
例
awaitなしでPromise.allが呼ばれている箇所をgrepするためのrule
code:yaml
id: no-await-in-promise-all
language: TypeScript
rule:
pattern: Promise.all($A)
has:
pattern: await $_
stopBy: end
rule:の内部の書き方は、用意されているクエリを学ぶ必要がある
ルールを実行する
一度に 1 つのルールを実行する
$ ast-grep scan --rule no-await-in-promise-all.yml test.ts