eslint-plugin-better-tailwindcss
Version:
auto-wraps tailwind classes after a certain print width or class count into multiple lines to improve readability.
32 lines • 1.27 kB
JavaScript
import { readFileSync } from "node:fs";
import { fork } from "@eslint/css-tree";
import { tailwind4 } from "tailwind-csstree";
const { findAll, generate, parse } = fork(tailwind4);
export function getCustomComponentClasses({ configPath }) {
const entryFile = readFileSync(configPath, "utf-8");
const ast = parse(entryFile);
return getCustomComponentUtilities(ast);
}
function getCustomComponentUtilities(ast) {
const customComponentUtilities = [];
const componentLayers = findAll(ast, node => {
return node.type === "Atrule" &&
node.name === "layer" &&
node.prelude?.type === "AtrulePrelude" &&
generate(node.prelude).trim() === "components";
});
for (const layer of componentLayers) {
const classSelectors = findAll(layer, node => node.type === "ClassSelector");
for (const classNode of classSelectors) {
if (classNode.type !== "ClassSelector") {
continue;
}
if (customComponentUtilities.includes(classNode.name)) {
continue;
}
customComponentUtilities.push(classNode.name);
}
}
return customComponentUtilities;
}
//# sourceMappingURL=custom-component-classes.async.v4.js.map