From 5c06a33e641594c5617a0606c338fc54c64d623b Mon Sep 17 00:00:00 2001 From: Gar Date: Thu, 10 Mar 2022 07:41:46 -0800 Subject: fix: clean up owner command and otplease (#4528) --- lib/utils/otplease.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'lib/utils') diff --git a/lib/utils/otplease.js b/lib/utils/otplease.js index 0e32493f9..566c24ef2 100644 --- a/lib/utils/otplease.js +++ b/lib/utils/otplease.js @@ -1,20 +1,17 @@ -const prompt = 'This operation requires a one-time password.\nEnter OTP:' const readUserInfo = require('./read-user-info.js') -const isOtpError = err => - err.code === 'EOTP' || (err.code === 'E401' && /one-time pass/.test(err.body)) - module.exports = otplease -function otplease (opts, fn) { - opts = { prompt, ...opts } - return Promise.resolve().then(() => fn(opts)).catch(err => { - if (!isOtpError(err)) { +async function otplease (opts, fn) { + try { + await fn(opts) + } catch (err) { + if (err.code !== 'EOTP' && (err.code !== 'E401' || !/one-time pass/.test(err.body))) { throw err } else if (!process.stdin.isTTY || !process.stdout.isTTY) { throw err } else { - return readUserInfo.otp(opts.prompt) - .then(otp => fn({ ...opts, otp })) + const otp = await readUserInfo.otp('This operation requires a one-time password.\nEnter OTP:') + return fn({ ...opts, otp }) } - }) + } } -- cgit v1.2.3