@nice-move/cli
Version:
Frontend develop helper for frontend development
8 lines • 1.94 kB
JavaScript
import{ansi_styles_default as e,stringWidth as t,stripAnsi as n}from"./string-width-B0yJp9KT.mjs";const r=new Set([`\x1B`,``]),i=39,a=`\x07`,o=`[`,s=`]`,c=`m`,l=`${s}8;;`,u=e=>`${r.values().next().value}${o}${e}${c}`,d=e=>`${r.values().next().value}${l}${e}${a}`,f=e=>e.split(` `).map(e=>t(e)),p=(e,i,o)=>{let s=[...i],u=!1,d=!1,f=t(n(e.at(-1)));for(let[n,i]of s.entries()){let p=t(i);if(f+p<=o?e[e.length-1]+=i:(e.push(i),f=0),r.has(i)){u=!0;let e=s.slice(n+1,n+1+l.length).join(``);d=e===l}if(u){d?i===a&&(u=!1,d=!1):i===c&&(u=!1);continue}f+=p,f===o&&n<s.length-1&&(e.push(``),f=0)}!f&&e.at(-1).length>0&&e.length>1&&(e[e.length-2]+=e.pop())},m=e=>{let n=e.split(` `),r=n.length;for(;r>0&&!(t(n[r-1])>0);)r--;return r===n.length?e:n.slice(0,r).join(` `)+n.slice(r).join(``)},h=(n,s,c={})=>{if(c.trim!==!1&&n.trim()===``)return``;let h=``,g,_,v=f(n),y=[``];for(let[e,r]of n.split(` `).entries()){c.trim!==!1&&(y[y.length-1]=y.at(-1).trimStart());let n=t(y.at(-1));if(e!==0&&(n>=s&&(c.wordWrap===!1||c.trim===!1)&&(y.push(``),n=0),(n>0||c.trim===!1)&&(y[y.length-1]+=` `,n++)),c.hard&&v[e]>s){let t=s-n,i=1+Math.floor((v[e]-t-1)/s),a=Math.floor((v[e]-1)/s);a<i&&y.push(``),p(y,r,s);continue}if(n+v[e]>s&&n>0&&v[e]>0){if(c.wordWrap===!1&&n<s){p(y,r,s);continue}y.push(``)}if(n+v[e]>s&&c.wordWrap===!1){p(y,r,s);continue}y[y.length-1]+=r}c.trim!==!1&&(y=y.map(e=>m(e)));let b=y.join(`
`),x=[...b],S=0;for(let[t,n]of x.entries()){if(h+=n,r.has(n)){let{groups:e}=RegExp(`(?:\\${o}(?<code>\\d+)m|\\${l}(?<uri>.*)${a})`).exec(b.slice(S))||{groups:{}};if(e.code!==void 0){let t=Number.parseFloat(e.code);g=t===i?void 0:t}else e.uri!==void 0&&(_=e.uri.length===0?void 0:e.uri)}let s=e.codes.get(Number(g));x[t+1]===`
`?(_&&(h+=d(``)),g&&s&&(h+=u(s))):n===`
`&&(g&&s&&(h+=u(g)),_&&(h+=d(_))),S+=n.length}return h};function g(e,t,n){return String(e).normalize().replaceAll(`\r
`,`
`).split(`
`).map(e=>h(e,t,n)).join(`
`)}export{g as wrapAnsi};