UNPKG

anl

Version:
2 lines (1 loc) 1.33 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../core/dist/esm/lib/create-prompt.mjs.js"),s=require("../../../core/dist/esm/lib/make-theme.mjs.js"),t=require("../../../core/dist/esm/lib/use-state.mjs.js"),r=require("../../../core/dist/esm/lib/use-prefix.mjs.js"),i=require("../../../core/dist/esm/lib/use-keypress.mjs.js"),a=require("../../../core/dist/esm/lib/key.mjs.js"),o=e.createPrompt(((e,o)=>{const{required:n,validate:d=()=>!0}=e,u=s.makeTheme(e.theme),[l,m]=t.useState("pending"),[c="",p]=t.useState(e.default),[j,f]=t.useState(),[v,y]=t.useState(""),b="loading"===l,g=r.usePrefix({isLoading:b,theme:u});i.useKeypress((async(e,s)=>{if("pending"===l)if(a.isEnterKey(e)){const e=v||c;m("loading");const t=n&&!e?"You must provide a value":await d(e);!0===t?(y(e),m("done"),o(e)):(s.write(v),f(t||"You must provide a valid value"),m("pending"))}else a.isBackspaceKey(e)&&!v?p(void 0):"tab"!==e.name||v?(y(s.line),f(void 0)):(p(void 0),s.clearLine(0),s.write(c),y(c))}));const q=u.style.message(e.message);let k,w=v;"function"==typeof e.transformer?w=e.transformer(v,{isFinal:"done"===l}):"done"===l&&(w=u.style.answer(v)),c&&"done"!==l&&!v&&(k=u.style.defaultAnswer(c));let h="";return j&&(h=u.style.error(j)),[[g,q,k,w].filter((e=>void 0!==e)).join(" "),h]}));exports.default=o;