UNPKG

esbuild-plugin-tailwindcss

Version:
2 lines (1 loc) 2.58 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _promises = require('fs/promises'); var _promises2 = _interopRequireDefault(_promises);var _path = require('path'); var _path2 = _interopRequireDefault(_path);var _postcss = require('@tailwindcss/postcss'); var _postcss2 = _interopRequireDefault(_postcss);var _autoprefixer = require('autoprefixer'); var _autoprefixer2 = _interopRequireDefault(_autoprefixer);var _postcss3 = require('postcss'); var _postcss4 = _interopRequireDefault(_postcss3);var _postcssmodules = require('postcss-modules'); var _postcssmodules2 = _interopRequireDefault(_postcssmodules);var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto);var c=t=>_crypto2.default.createHash("sha256").update(t).digest("hex");var u=t=>n=>{let{postcssPlugins:i={},cssModules:{enabled:d=!1,filter:m=/\.module\.css$/,exclude:g=[],options:f={}}={}}=t,o="tailwindcss-module",e=new Map,h=async s=>{let w=_path2.default.basename(s.path),l=d&&m.test(w),p=[...i.prepend||[],_postcss2.default.call(void 0, ),...i.disableAutoprefixer?[]:[_autoprefixer2.default.call(void 0, )],...i.append||[]];l&&p.push(_postcssmodules2.default.call(void 0, {...f,globalModulePaths:g,getJSON:(j,S)=>e.set(s.path,S)}));let M=await _promises2.default.readFile(s.path,"utf8"),{css:r}=await _postcss4.default.call(void 0, p).process(M,{from:s.path});if(!l)return{contents:r,loader:"css"};let a=`${o}://${c(s.path)}`,R=JSON.stringify(e.get(s.path)),x=`import "${a}"; export default ${R};`;return e.set(a,r),{contents:x,loader:"js"}},P=s=>({contents:_optionalChain([e, 'access', _ => _.get, 'call', _2 => _2(s.path), 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()]),loader:"css"}),O=s=>({path:s.path,namespace:o});n.onLoad({filter:/\.css$/},h),n.onLoad({filter:/.*/,namespace:o},P),n.onResolve({filter:new RegExp(`^${o}://`)},O)};var T=(t={})=>({name:"tailwindcss",setup:u(t)});var G=T;exports.default = G; exports.tailwindPlugin = T;