@devup-ui/next-plugin
Version:
Zero Config, Zero FOUC, Zero Runtime, CSS in JS Preprocessor
2 lines (1 loc) • 3.82 kB
JavaScript
var{defineProperty:j,getOwnPropertyNames:h,getOwnPropertyDescriptor:a}=Object,s=Object.prototype.hasOwnProperty;var y=new WeakMap,o=(m)=>{var L=y.get(m),N;if(L)return L;if(L=j({},"__esModule",{value:!0}),m&&typeof m==="object"||typeof m==="function")h(m).map((E)=>!s.call(L,E)&&j(L,E,{get:()=>m[E],enumerable:!(N=a(m,E))||N.enumerable}));return y.set(m,L),L};var d=(m,L)=>{for(var N in L)j(m,N,{get:L[N],enumerable:!0,configurable:!0,set:(E)=>L[N]=()=>E})};var p={};d(p,{DevupUI:()=>u});module.exports=o(p);var $=require("node:fs"),B=require("node:path"),O=require("@devup-ui/wasm"),t=require("@devup-ui/webpack-plugin");var R=require("node:fs"),H=require("node:path"),X=require("@devup-ui/wasm"),q=require("tinyglobby");var C=require("node:fs"),V=require("node:path");function S(m=process.cwd()){let L=m,N=null;while(!0){if(C.existsSync(V.join(L,"package.json")))N=L;let E=V.dirname(L);if(E===L)break;L=E}return N??m}var T=require("node:fs");function v(m){let L=T.readFileSync(m,"utf-8");return JSON.parse(L).name}var M=require("node:fs"),_=require("node:path");function x(){let m=M.readFileSync(_.join(process.cwd(),"package.json"),"utf-8"),L=JSON.parse(m);return Object.values(L.dependencies??{}).some((N)=>typeof N==="string"&&N.includes("workspace:"))}function b(m,L,N,E,z,J=process.cwd(),K=!1){if(z.length>0&&x()){let Q=S(),G=q.globSync(["package.json","!**/node_modules/**"],{followSymbolicLinks:!0,absolute:!0,cwd:Q}).filter((A)=>z.includes(v(A))).map((A)=>H.dirname(A));for(let A of G)b(m,L,N,E,z,A,!0);if(K)return}let U=q.globSync(["**/*.tsx","**/*.ts","**/*.js","**/*.mjs"],{followSymbolicLinks:!0,absolute:!0,cwd:J});U.sort();for(let Q of U){let G=H.relative(process.cwd(),R.realpathSync(Q));if(/\.(test(-d)?|d|spec)\.(tsx|ts|js|mjs)$/.test(G)||/^(out|.next)[/\\]/.test(G)||m.test(G))continue;let{cssFile:A,css:Y}=X.codeExtract(G,R.readFileSync(G,"utf-8"),L,E,N,!1,!0);if(A)R.writeFileSync(H.join(E,H.basename(A)),Y??"","utf-8")}R.writeFileSync(H.join(E,"devup-ui.css"),X.getCss(null,!1),"utf-8")}function u(m,L={}){if(process.env.TURBOPACK==="1"||process.env.TURBOPACK==="auto"){m??={},m.turbopack??={},m.turbopack.rules??={};let{package:z="@devup-ui/react",distDir:J="df",cssDir:K=B.resolve(J,"devup-ui"),singleCss:U=!1,devupFile:Q="devup.json",include:G=[],prefix:A}=L;if(A)O.setPrefix(A);let Y=B.join(J,"sheet.json"),F=B.join(J,"classMap.json"),f=B.join(J,"fileMap.json"),I=B.join(J,".gitignore");if(!$.existsSync(J))$.mkdirSync(J,{recursive:!0});if(!$.existsSync(K))$.mkdirSync(K,{recursive:!0});if(!$.existsSync(I))$.writeFileSync(I,"*");let P=$.existsSync(Q)?JSON.parse($.readFileSync(Q,"utf-8"))?.theme:{};O.registerTheme(P);let W=O.getThemeInterface(z,"CustomColors","DevupThemeTypography","DevupTheme");if(W)$.writeFileSync(B.join(J,"theme.d.ts"),W);let w=new RegExp(`(node_modules(?!.*(${["@devup-ui",...G].join("|").replaceAll("/","[\\/\\\\_]")})([\\/\\\\.]|$)))|(.mdx.[tj]sx?$)`);b(w,z,U,K,G);let k=JSON.parse(O.exportSheet()),r=JSON.parse(O.exportClassMap()),D=JSON.parse(O.exportFileMap()),Z=O.getDefaultTheme();if(Z)process.env.DEVUP_UI_DEFAULT_THEME=Z,m.env??={},Object.assign(m.env,{DEVUP_UI_DEFAULT_THEME:Z});let l={[`./${B.relative(process.cwd(),K).replaceAll("\\","/")}/*.css`]:[{loader:"@devup-ui/next-plugin/css-loader",options:{watch:!1}}],"*.{tsx,ts,js,mjs}":{loaders:[{loader:"@devup-ui/next-plugin/loader",options:{package:z,cssDir:K,sheetFile:Y,classMapFile:F,fileMapFile:f,themeFile:Q,defaultSheet:k,defaultClassMap:r,defaultFileMap:D,watch:!1,singleCss:U,theme:P}}],condition:{not:{path:w}}}};return Object.assign(m.turbopack.rules,l),m}let{webpack:E}=m;return m.webpack=(z,J)=>{if(L.cssDir??=B.resolve(J.dev?L.distDir??"df":".next/cache",`devup-ui_${J.buildId}`),z.plugins.push(new t.DevupUIWebpackPlugin({...L,watch:J.dev})),typeof E==="function")return E(z,J);return z},m}