weapp-tailwindcss
Version:
把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!
44 lines (43 loc) • 2.02 kB
JavaScript
const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs");
let node_path = require("node:path");
node_path = require_rolldown_runtime.__toESM(node_path, 1);
//#region src/bundlers/shared/css-imports.ts
const tailwindcssImportRE = /^(?:tailwindcss|weapp-tailwindcss)(?:\/.*)?$/;
const tailwindcssCssImportStatementRE = /(@import\s+(?:url\(\s*)?)(["'])((?:tailwindcss|weapp-tailwindcss)(?:\/[^"']*)?\$?)(\2\s*\)?)/gi;
function normalizeTailwindcssSpecifier(specifier) {
if (specifier === "tailwindcss$" || specifier === "weapp-tailwindcss$") return specifier.slice(0, -1);
return specifier;
}
function getTailwindcssSubpath(specifier) {
if (specifier === "tailwindcss" || specifier === "weapp-tailwindcss") return "index.css";
return specifier.replace(/^(?:tailwindcss|weapp-tailwindcss)\//, "");
}
function resolveTailwindcssImport(specifier, pkgDir, options) {
const normalized = normalizeTailwindcssSpecifier(specifier);
if (!tailwindcssImportRE.test(normalized)) return null;
if (normalized === "tailwindcss" || normalized === "weapp-tailwindcss") return options?.rootImport ?? (options?.join ?? node_path.default.join)(pkgDir, "index.css");
return (options?.join ?? node_path.default.join)(pkgDir, getTailwindcssSubpath(normalized));
}
function rewriteTailwindcssImportsInCode(code, pkgDir, options) {
let hasReplacements = false;
const rewritten = code.replace(tailwindcssCssImportStatementRE, (full, prefix, quote, specifier, suffix) => {
const replacement = resolveTailwindcssImport(specifier, pkgDir, options);
if (!replacement) return full;
hasReplacements = true;
return `${prefix}${quote}${replacement}${suffix}`;
});
return hasReplacements ? rewritten : void 0;
}
//#endregion
Object.defineProperty(exports, "resolveTailwindcssImport", {
enumerable: true,
get: function() {
return resolveTailwindcssImport;
}
});
Object.defineProperty(exports, "rewriteTailwindcssImportsInCode", {
enumerable: true,
get: function() {
return rewriteTailwindcssImportsInCode;
}
});