flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
1 lines • 8.13 kB
Source Map (JSON)
{"version":3,"file":"setup-config.cjs","sources":["../../../src/cli/commands/setup-config.ts"],"sourcesContent":["import fs from \"fs/promises\";\nimport { klona } from \"klona/json\";\nimport { isEqual } from \"../../helpers/is-equal\";\nimport { COMPONENT_TO_CLASS_LIST_MAP } from \"../../metadata/class-list\";\nimport { configFilePath } from \"../consts\";\nimport { createConfig, type Config } from \"../utils/create-config\";\nimport { getTailwindVersion } from \"../utils/get-tailwind-version\";\n\n/**\n * Sets up the `.flowbite-react/config.json` file in the project.\n *\n * This function creates or updates the configuration file with default values and validates existing configurations.\n */\nexport async function setupConfig(): Promise<Config> {\n const defaultConfig = createConfig({\n version: await getTailwindVersion(),\n });\n const writeTimeout = 10;\n\n try {\n const raw = await fs.readFile(configFilePath, \"utf-8\");\n const config: Config = JSON.parse(raw);\n let newConfig = klona(config);\n\n if (newConfig.$schema !== defaultConfig.$schema) {\n console.warn(`Invalid $schema in ${configFilePath}: ${newConfig.$schema}`);\n newConfig.$schema = defaultConfig.$schema;\n }\n if (!Array.isArray(newConfig.components)) {\n console.warn(`Invalid components in ${configFilePath}: ${newConfig.components}`);\n newConfig.components = [...defaultConfig.components];\n } else {\n const isValidComponent = (component: unknown) =>\n typeof component === \"string\" &&\n component.trim() !== \"\" &&\n (component === \"*\" ||\n COMPONENT_TO_CLASS_LIST_MAP[component as keyof typeof COMPONENT_TO_CLASS_LIST_MAP] !== undefined);\n\n if (newConfig.components.some((component) => !isValidComponent(component))) {\n console.warn(`Invalid components in ${configFilePath}: ${newConfig.components}`);\n newConfig.components = newConfig.components.filter(isValidComponent);\n }\n }\n if (typeof newConfig.dark !== \"boolean\") {\n console.warn(`Invalid dark in ${configFilePath}: ${newConfig.dark}`);\n newConfig.dark = defaultConfig.dark;\n }\n if (typeof newConfig.path !== \"string\") {\n console.warn(`Invalid path in ${configFilePath}: ${newConfig.path}`);\n newConfig.path = defaultConfig.path;\n }\n if (typeof newConfig.prefix !== \"string\") {\n console.warn(`Invalid prefix in ${configFilePath}: ${newConfig.prefix}`);\n newConfig.prefix = defaultConfig.prefix;\n }\n if (typeof newConfig.rsc !== \"boolean\") {\n console.warn(`Invalid rsc in ${configFilePath}: ${newConfig.rsc}`);\n newConfig.rsc = defaultConfig.rsc;\n }\n if (typeof newConfig.tsx !== \"boolean\") {\n console.warn(`Invalid tsx in ${configFilePath}: ${newConfig.tsx}`);\n newConfig.tsx = defaultConfig.tsx;\n }\n if (newConfig.version !== defaultConfig.version) {\n console.warn(`Invalid version in ${configFilePath}: ${newConfig.version} (detected: ${defaultConfig.version})`);\n newConfig.version = defaultConfig.version;\n }\n\n for (const key in newConfig) {\n if (!(key in defaultConfig)) {\n console.warn(`Invalid property in ${configFilePath}: ${key}`);\n delete newConfig[key as keyof Config];\n }\n }\n\n const isSorted = isEqual(Object.keys(newConfig).sort(), Object.keys(newConfig));\n if (!isSorted) {\n console.warn(`Invalid keys order in ${configFilePath}`);\n newConfig = Object.fromEntries(Object.entries(newConfig).sort()) as Config;\n }\n\n if (!isEqual(config, newConfig) || !isSorted) {\n console.log(`Updating ${configFilePath} file...`);\n setTimeout(() => fs.writeFile(configFilePath, JSON.stringify(newConfig, null, 2)), writeTimeout);\n }\n\n return newConfig;\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"ENOENT\")) {\n console.log(`Creating ${configFilePath} file...`);\n } else {\n console.error(`Invalid ${configFilePath} file, regenerating...`);\n }\n\n setTimeout(() => fs.writeFile(configFilePath, JSON.stringify(defaultConfig, null, 2)), writeTimeout);\n return defaultConfig;\n }\n}\n"],"names":["createConfig","getTailwindVersion","configFilePath","klona","COMPONENT_TO_CLASS_LIST_MAP","isEqual"],"mappings":"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"}