@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.77 kB
JavaScript
import{copy as e}from"../i18n/copy.mjs";import t from"../../constants/constants.mjs";import n from"../../utils/helpers/get-dir-name.mjs";import r from"../cli/logger.mjs";import i from"node:fs/promises";import a from"node:path";const o=n(import.meta.url),s=async e=>{try{return await i.stat(e),!0}catch{return!1}},c=async e=>(await i.stat(e)).isDirectory(),l=async e=>{await i.mkdir(e,{recursive:!0})},u=async(e,t,n,o,s)=>{await l(a.dirname(t)),await i.copyFile(e,t);let c=a.relative(s,t),u=c.startsWith(`.`)||c===``?c||`.`:`./${c}`;o&&r.info(`Copied public asset:`,r.color.green(u),{silent:n})},d=async(e,t,n,r,o)=>{await l(t);let s=await i.readdir(e,{withFileTypes:!0});await Promise.all(s.map(async i=>{let s=a.join(e,i.name),c=a.join(t,i.name);i.isDirectory()?await d(s,c,n,r,o):i.isFile()&&await u(s,c,n,r,o)}))},f=async n=>{try{let e=n.projectRoot??process.cwd(),r=n.silent??!1,i=n.verbose??!1,f=a.join(o,`../../../`,t.directories.public);await l(n.outDir),await s(f)&&await d(f,n.outDir,r,i,e);let p=n.config.build.paths.copyPublic??[];if(await Promise.all(p.map(async t=>{let o=typeof t==`string`,l=o?t:t.input,f=o?void 0:t.output,p=a.isAbsolute(l)?l:a.join(e,l);if(await s(p))if(await c(p)){let t=f?a.join(n.outDir,f):a.join(n.outDir,a.basename(p));await d(p,t,r,i,e)}else{let t=f?a.join(n.outDir,f):a.join(n.outDir,a.basename(p));await u(p,t,r,i,e)}})),n.includeProjectPublic){let o=a.join(e,t.directories.public);await s(o)&&await c(o)&&await d(o,n.outDir,r,i,e)}return{error:void 0,data:void 0}}catch(t){return{error:{message:e(`server:core.build.public.assets.copy.failed`,{defaultMessage:t instanceof Error?t.message:`An error occurred while copying public assets`})},data:void 0}}};export{f as default};
//# sourceMappingURL=prepare-lucid-public-assets.mjs.map