@sugarcube-org/vite
Version:
Vite plugin for sugarcube
12 lines (9 loc) • 1.57 kB
JavaScript
var p=Object.defineProperty;var c=(r,o)=>p(r,"name",{value:o,configurable:!0});import{getTokenPathsFromConfig as a,tokensToCSSPipeline as g,writeCSSFilesToDisk as u,loadConfig as h}from"@sugarcube-org/core";import{minimatch as l}from"minimatch";function m(){let r;return{name:"vite-plugin-sugarcube",async config(){return r=await h(),{exclude:[r.output?.directories?.css||"./src/styles/**"]}},configureServer(o){const i=c(async()=>{try{const e=await g(r),t=[];if(e.errors.load.length>0&&t.push(e.errors.load.map(s=>` - ${s.message}`).join(`
`)),e.errors.flatten.length>0&&t.push(e.errors.flatten.map(s=>` - ${s.message}`).join(`
`)),e.errors.validation.length>0&&t.push(e.errors.validation.map(s=>` - ${s.message}`).join(`
`)),e.errors.resolution.length>0&&t.push(e.errors.resolution.map(s=>` - ${s.message}`).join(`
`)),t.length>0){o.ws.send("vite:error",{message:"Token processing failed",stack:t.join(`
`)}),o.config.logger.error(`[sugarcube] Token processing failed:
${t.join(`
`)}`);return}const f=a(r);await u(e.output,!0,f)}catch(e){o.ws.send("vite:error",{message:"Token processing failed",stack:e instanceof Error?e.stack:String(e)}),o.config.logger.error(`[sugarcube] Error processing tokens:
${e instanceof Error?e.stack:String(e)}`)}},"processTokens");i();const n=a(r);for(const e of n)o.watcher.add(e);o.watcher.on("change",async e=>{n.some(t=>l(e,t))&&await i()})},async handleHotUpdate(o){if(a(r).some(n=>l(o.file,n)))try{const n=await g(r),e=a(r);return await u(n.output,!0,e),[]}catch{return[]}return null}}}c(m,"viteSugarcube");export{m as default};