UNPKG

arguable

Version:

Usage-first argument parser.

25 lines (24 loc) 818 B
module.exports = function (process) { const rescue = require('rescue') const Arguable = require('./arguable') process.on('unhandledRejection', require('./rethrow')) return async function main (f, argv) { let exitCode = null try { exitCode = await f(argv).exit } catch (error) { rescue(error, [ Arguable.Error ]) if (error.stdout) { process.stdout.write(error.stdout) process.stdout.write('\n') } else if (error.stderr) { process.stderr.write(error.stderr) process.stderr.write('\n') } exitCode = error.exitCode } if (exitCode != null && typeof exitCode == 'number') { process.exitCode = exitCode } } }