ExpressionStatement
ESLint では、や などのキーワードを使用して、Esprima パーサーを介してコードから生成された抽象構文ツリー内の特定のノードにアクセスできますVariableDeclarator
。options
特定のノードをESLintに渡すことができる assert 関数を開発したいと考えています。
function validateExpressionStatement(context){
return {
context.options[1]: function (node) {
var source = context.getSource();
var sourceEval = eval(source);
if (!(sourceEval == context.options[0])) {
assertOk(false, "", `Expected a return value of ${context.options[0]}.`);
}
else {
assertOk(true, `${context.options[0]} was returned correctly.`)
}
}
}
}
私のアサートは、ユーザーが入力した値を options 配列にプッシュするので、コードをテストする前にチェックするノードを選択できます。
function assertExpressionStatementReturn(value, treelevel){
config["rules"]["validate-expression-statement"][1] = value;
config["rules"]["validate-expression-statemet"][2] = treelevel;
}
この特定の関数では、AST 内の特定のノードからの戻り値がアサートされているかどうかを確認しています。私context.options[1]
はうまくいかないことを知っています。これを達成する方法はありますか?私が探しているものを明確にする必要がある場合は、お知らせください。