データ読み込みヘルパー ライブラリの cli 引数を検証するためにyargsを使用しています。
スクリプトの実行を許可する前に、ファイルが存在することを確認できるようにしたいと考えていますfs.accessSync(filename, fs.R_OK);。ただし、ファイルが存在しない場合、メッセージは単純に .check() 関数をエラーとして表示しますが、インターセプトして、ファイルが存在しないことを示します (読み取り権限あり)。
では、偽の戻り値で .check() によって表示されるエラーを送信するにはどうすればよいですか?
これが私のyargsの要点です:
var path = {
name: 'filepath',
options: {
alias: 'f',
describe: 'provide json array file',
demand: true,
},
};
function fileExists(filename) {
try {
fs.accessSync(filename, fs.R_OK);
return true;
} catch (e) {
return false;
}
}
var argv = require('yargs')
.usage('$0 [args]')
.option(path.name, path.options)
.check(function (argv) {
return fileExists(argv.f);
})
.strict()
.help('help')
.argv;
読み取り可能なファイルでない場合は、次のエラーが返されます。
Argument check failed: function (argv) {
return fileExists(argv.f);
}
次の行に沿って何かを指定できるようにしたいと思います。
Argument check failed: filepath is not a readable file