flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
37 lines (34 loc) • 1.41 kB
JavaScript
import fs__default from 'fs/promises';
import { excludeDirs, allowedExtensions, classListFilePath } from '../consts.js';
import { buildClassList } from '../utils/build-class-list.js';
import { extractComponentImports } from '../utils/extract-component-imports.js';
import { findFiles } from '../utils/find-files.js';
import { getConfig } from '../utils/get-config.js';
async function generateClassList() {
try {
const config = await getConfig();
if (!config.components.length) {
const files = await findFiles({
patterns: allowedExtensions.map((ext) => `**/*${ext}`),
excludeDirs
});
const importedComponents = /* @__PURE__ */ new Set();
for (const file of files) {
const content = await fs__default.readFile(file, "utf-8");
for (const component of extractComponentImports(content)) {
importedComponents.add(component);
}
}
if (importedComponents.size > 0) {
config.components = [...importedComponents];
}
}
const classList = buildClassList(config);
console.log(`Generating ${classListFilePath} file...`);
await fs__default.writeFile(classListFilePath, JSON.stringify(classList, null, 2), { flag: "w" });
} catch (error) {
console.error(`Failed to generate ${classListFilePath}:`, error);
}
}
export { generateClassList };
//# sourceMappingURL=generate-class-list.js.map