constatic
Version:
Constatic cli
2 lines (1 loc) • 1.26 kB
JavaScript
import{copy as l,divider as h,uiMessage as P}from"#helpers";import{menus as o}from"#menus";import{withDefaults as w}from"#prompts";import{search as S}from"@inquirer/prompts";import{rm as g}from"node:fs/promises";import a from"node:path";import{formatPresets as d}from"./actions/format.js";import{modifyScriptPresetMenu as j}from"./actions/modify.js";async function I(e,r){const c=await S(w({message:P({"en-US":"Select the presets you want to edit","pt-BR":"Selecione as predefini\xE7\xF5es que deseja editar"}),async source(t){return t?d(r.filter(s=>{const u=s.name.toLowerCase();return u.startsWith(t.toLowerCase())||u.includes(t.toLowerCase())})):d(r)}}));if(h(),c==="back"){o.presets.scripts.main(e);return}const m=r.findIndex(t=>t.id===c),n=r[m];if(!n){o.presets.scripts.edit(e,r);return}const i={...n};if(await j(e,i,!0)==="cancel"){o.presets.scripts.edit(e,r);return}const p=n.files.filter(t=>i.files.some(s=>s.path===t.path)),f=a.join(e.configdir,"presets/scripts",i.id);await Promise.all(p.map(t=>g(a.join(f,t.path),{force:!0}).catch(()=>null))),await Promise.all(i.files.map(({path:t,dist:s=t})=>l(a.join(e.cwd,t),a.join(f,s)).catch(()=>null))),r[m]=i,e.conf.set("presets.scripts",r),o.presets.scripts.main(e)}export{I as presetsScriptsEditMenu};