UNPKG

anl

Version:
2 lines (1 loc) 1.75 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("yoctocolors-cjs"),s=require("../../../core/dist/esm/lib/create-prompt.mjs.js"),t=require("../../../core/dist/esm/lib/use-state.mjs.js"),r=require("../../../core/dist/esm/lib/make-theme.mjs.js"),a=require("../../../core/dist/esm/lib/use-prefix.mjs.js"),i=require("../../../core/dist/esm/lib/use-keypress.mjs.js"),n=require("../../../core/dist/esm/lib/key.mjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=o(e);const u={key:"h",name:"Help, list all options",value:void 0};function m(e,s){return"name"===s?"name"in e?e.name:e.value:"value"in e?e.value:e.name}var c=s.createPrompt(((e,s)=>{const{choices:o,default:c="h",expanded:d=!1}=e,[y,f]=t.useState("pending"),[p,j]=t.useState(""),[v,$]=t.useState(d),[k,h]=t.useState(),b=r.makeTheme(e.theme),q=a.usePrefix({theme:b});i.useKeypress(((e,t)=>{if(n.isEnterKey(e)){const e=(p||c).toLowerCase();if("h"!==e||v){const t=o.find((({key:s})=>s===e));if(t){const e=m(t,"value");j(e),f("done"),s(e)}else h(""===p?"Please input a value":`"${l.default.red(p)}" isn't an available option`)}else $(!0)}else j(t.line),h(void 0)}));const g=b.style.message(e.message);if("done"===y)return`${q} ${g} ${b.style.answer(p)}`;const w=v?o:[...o,u];let x="",C=w.map((e=>e.key===c?e.key.toUpperCase():e.key)).join("");C=` ${b.style.defaultAnswer(C)}`,v&&(C="",x=w.map((e=>{const s=` ${e.key}) ${m(e,"name")}`;return e.key===p.toLowerCase()?b.style.highlight(s):s})).join("\n"));let P="";const S=w.find((({key:e})=>e===p.toLowerCase()));S&&(P=`${l.default.cyan(">>")} ${m(S,"name")}`);let L="";return k&&(L=b.style.error(k)),[`${q} ${g}${C} ${p}`,[x,P,L].filter(Boolean).join("\n")]}));exports.default=c;