UNPKG

anl

Version:
2 lines (1 loc) 1.27 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("ansi-escapes"),s=require("../../../core/dist/esm/lib/create-prompt.mjs.js"),t=require("../../../core/dist/esm/lib/make-theme.mjs.js"),r=require("../../../core/dist/esm/lib/use-state.mjs.js"),i=require("../../../core/dist/esm/lib/use-prefix.mjs.js"),a=require("../../../core/dist/esm/lib/use-keypress.mjs.js"),o=require("../../../core/dist/esm/lib/key.mjs.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(e),l=s.createPrompt((e,s)=>{const{validate:n=()=>!0}=e,l=t.makeTheme(e.theme),[m,d]=r.useState("pending"),[c,p]=r.useState(),[j,f]=r.useState(""),y="loading"===m,g=i.usePrefix({isLoading:y,theme:l});a.useKeypress(async(e,t)=>{if("pending"===m)if(o.isEnterKey(e)){const e=j;d("loading");const r=await n(e);!0===r?(f(e),d("done"),s(e)):(t.write(j),p(r||"You must provide a valid value"),d("pending"))}else f(t.line),p(void 0)});const k=l.style.message(e.message);let b,v="";if(e.mask){v=("string"==typeof e.mask?e.mask:"*").repeat(j.length)}else"done"!==m&&(b=`${l.style.help("[input is masked]")}${u.default.cursorHide}`);"done"===m&&(v=l.style.answer(v));let q="";return c&&(q=l.style.error(c)),[[g,k,e.mask?v:b].join(" "),q]});exports.default=l;