UNPKG

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
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