@devup-ui/next-plugin
Version:
Zero Config, Zero FOUC, Zero Runtime, CSS in JS Preprocessor
2 lines (1 loc) • 1.65 kB
JavaScript
import{existsSync as a,readFileSync as u}from"node:fs";import{Agent as j,request as x}from"node:http";import{getFileNumByFilename as b}from"@devup-ui/plugin-utils";import{getCss as A,importClassMap as M,importFileMap as w,importSheet as y,registerTheme as v}from"@devup-ui/wasm";var d=!1,l=null,B=new j({keepAlive:!0});function D(o){if(l!==null)return l;return l=parseInt(u(o,"utf-8").trim()),l}function J(o,f,p,n,t){let r=new URLSearchParams;if(f!=null)r.set("fileNum",String(f));if(r.set("importMainCss",String(p)),n)r.set("waitForIdle","true");let i=x({hostname:"127.0.0.1",port:o,path:`/css?${r.toString()}`,method:"GET",agent:B},(e)=>{let s=[];e.on("data",(m)=>s.push(m)),e.on("end",()=>{if(e.statusCode!==200){t(Error(`Coordinator CSS error: ${e.statusCode}`));return}t(null,Buffer.concat(s).toString("utf-8"))})});i.on("error",(e)=>t(e)),i.end()}var Q=function(o,f,p){let{watch:n,coordinatorPortFile:t,sheetFile:r,classMapFile:i,fileMapFile:e,themeFile:s,theme:m,defaultClassMap:O,defaultFileMap:P,defaultSheet:I}=this.getOptions();if(t){let c=this.async(),L=this.resourceQuery??"",N=this.resourcePath+L,F=b(N),k=F!==null,g=(C)=>{if(!a(t)){if(C>0){setTimeout(()=>g(C-1),50);return}c(Error("Coordinator port file not found"));return}try{let h=D(t);J(h,F,k,!n,(S,E)=>{if(S)return c(S);c(null,E)})}catch(h){c(h)}};g(20);return}if(!d)if(d=!0,n){if(a(r))y(JSON.parse(u(r,"utf-8")));if(a(i))M(JSON.parse(u(i,"utf-8")));if(a(e))w(JSON.parse(u(e,"utf-8")));if(a(s))v(JSON.parse(u(s,"utf-8"))?.theme??{})}else w(P),M(O),y(I),v(m);this.callback(null,!n?o:A(b(this.resourcePath),!0),f,p)},z=Q,G=()=>{d=!1,l=null};export{z as default,G as resetInit};