@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
4 lines • 2.36 kB
JavaScript
import{ZodError as e}from"zod";import t from"picocolors";const n={tick:{icon:`✓`,color:t.green},cross:{icon:`×`,color:t.red},warning:{icon:`!`,color:t.yellow},info:{icon:`i`,color:t.blue},bullet:{icon:`•`,color:t.gray},child:{icon:`↳`,color:t.gray},line:{icon:`┃`,color:t.gray},halfCircle:{icon:`◐`,color:t.yellow}},r=(e,t)=>{let{symbol:r,indent:i=0,spaceBefore:a=!1,spaceAfter:o=!1,defaultSymbol:s,silent:c=!1,output:l=`stdout`}=t,u=e=>{l===`stderr`?console.error(e??``):console.log(e??``)};a&&c!==!0&&u();let d=` `.repeat(i),f=r?n[r]??{icon:r,color:e=>e}:s?n[s]:void 0,p=f?`${f.color(f.icon)} `:``,m=e.join(` `);c!==!0&&u(`${d}${p}${m}`),o&&c!==!0&&u()},i=e=>typeof e==`object`&&!!e&&(`symbol`in e||`indent`in e||`spaceBefore`in e||`spaceAfter`in e||`silent`in e),a=(...e)=>{let t=e.find(i)??{},n=e.filter(e=>typeof e==`string`);r(n,{...t,defaultSymbol:`info`})},o=(...e)=>{let n=e.find(i)??{},a=e.filter(e=>typeof e==`string`).map(e=>t.red(e));r(a,{...n,defaultSymbol:`cross`,output:`stderr`})},s=(...e)=>{let t=e.find(i)??{},n=e.filter(e=>typeof e==`string`);r(n,{...t,defaultSymbol:`warning`})},c=(...e)=>{let t=e.find(i)??{},n=e.filter(e=>typeof e==`string`);r(n,{...t})},l=(...e)=>{let t=e.find(i)??{},n=e.filter(e=>typeof e==`string`);r(n,{...t,defaultSymbol:`tick`})},u=e=>e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(2)}s`,d=()=>{let e=process.hrtime.bigint();return()=>{let t=process.hrtime.bigint();return Number(t-e)/1e6}},f=(e,n,r)=>(n??t.bgGreenBright)((r??t.black)(` ${e} `)),p=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return`${(e/t**r).toFixed(2)} ${n[r]}`},m=(e,t)=>{r([e],{...t,output:`stderr`})},h=e=>{let[t=``,...n]=e.split(`
`);m(t,{indent:2,symbol:`child`});for(let e of n)m(e,{indent:4})},g=e=>e.reduce((e,t)=>{let n=String(t);return typeof t==`number`?`${e}[${n}]`:e.length===0?n:`${e}.${n}`},``),_={info:a,error:o,warn:s,log:c,success:l,color:t,symbols:n,formatMilliseconds:u,startTimer:d,createBadge:f,formatBytes:p,errorInstance:(t,n)=>{if(t instanceof e){_.error(n??`Validation Error`);for(let e of t.issues){let t=g(e.path);h(t?`${t}: ${e.message}`:e.message)}return}if(_.error(n??t.name),h(t.message),!t.stack)return;let r=t.stack.split(`
`).slice(1,3);for(let e of r)m(_.color.gray(e.trim()),{indent:4})}};export{_ as default};
//# sourceMappingURL=logger.mjs.map