UNPKG

@sugarcube-org/vite

Version:
12 lines (9 loc) 1.57 kB
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};