UNPKG

esbuild-plugin-tailwindcss

Version:
2 lines (1 loc) 1.16 kB
import y from"node:fs/promises";import L from"node:path";import A from"@tailwindcss/postcss";import $ from"autoprefixer";import b from"postcss";import v from"postcss-modules";import S from"node:crypto";var c=s=>S.createHash("sha256").update(s).digest("hex");var u=s=>n=>{let{postcssPlugins:i={},cssModules:{enabled:d=!1,filter:m=/\.module\.css$/,exclude:g=[]}={}}=s,e="tailwindcss-module",o=new Map,f=async t=>{let O=L.basename(t.path),l=d&&m.test(O),p=[...i.prepend||[],A(),...i.disableAutoprefixer?[]:[$()],...i.append||[]];l&&p.push(v({globalModulePaths:g,getJSON:(T,M)=>o.set(t.path,M)}));let w=await y.readFile(t.path,"utf8"),{css:r}=await b(p).process(w,{from:t.path});if(!l)return{contents:r,loader:"css"};let a=`${e}://${c(t.path)}`,R=JSON.stringify(o.get(t.path)),x=`import "${a}"; export default ${R};`;return o.set(a,r),{contents:x,loader:"js"}},h=t=>({contents:o.get(t.path)?.toString(),loader:"css"}),P=t=>({path:t.path,namespace:e});n.onLoad({filter:/\.css$/},f),n.onLoad({filter:/.*/,namespace:e},h),n.onResolve({filter:new RegExp(`^${e}://`)},P)};var C=(s={})=>({name:"tailwindcss",setup:u(s)});var D=C;export{D as default,C as tailwindPlugin};