UNPKG

flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS

62 lines (59 loc) 2.32 kB
import fs__default from 'fs/promises'; import { automaticClassGenerationMessage, excludeDirs, allowedExtensions, classListFilePath } from '../consts.js'; import { buildClassList } from '../utils/build-class-list.js'; import { createInitLogger } from '../utils/create-init-logger.js'; import { extractComponentImports } from '../utils/extract-component-imports.js'; import { findFiles } from '../utils/find-files.js'; import { getConfig } from '../utils/get-config.js'; import { setupInit } from './setup-init.js'; import { setupOutputDirectory } from './setup-output-directory.js'; import { setupTailwind } from './setup-tailwind.js'; async function build() { await setupOutputDirectory(); try { const config = await getConfig(); await setupInit(config); await setupTailwind(); const initLogger = createInitLogger(config); const importedComponents = []; if (config.components.length) { console.warn(automaticClassGenerationMessage); if (initLogger.isCustomConfig) { const files = await findFiles({ patterns: allowedExtensions.map((ext) => `**/*${ext}`), excludeDirs }); for (const file of files) { const content = await fs__default.readFile(file, "utf-8"); initLogger.check(file, content); } } } else { const files = await findFiles({ patterns: allowedExtensions.map((ext) => `**/*${ext}`), excludeDirs }); for (const file of files) { const content = await fs__default.readFile(file, "utf-8"); const components = extractComponentImports(content); initLogger.check(file, content); if (components.length) { importedComponents.push(...components); } } } initLogger.log(); const classList = buildClassList({ components: config.components.length ? config.components : [...new Set(importedComponents)], dark: config.dark, prefix: config.prefix, version: config.version }); console.log(`Generating ${classListFilePath} file...`); await fs__default.writeFile(classListFilePath, JSON.stringify(classList, null, 2)); } catch (error) { console.error(`Failed to generate ${classListFilePath}:`, error); } } export { build }; //# sourceMappingURL=build.js.map