import fs from 'fs' import path from 'path' const defaultConfigFiles = [ './tailwind.config.js', './tailwind.config.cjs', './tailwind.config.mjs', './tailwind.config.ts', ] function isObject(value) { return typeof value === 'object' && value !== null } function isEmpty(obj) { return Object.keys(obj).length === 0 } function isString(value) { return typeof value === 'string' || value instanceof String } export default function resolveConfigPath(pathOrConfig) { // require('tailwindcss')({ theme: ..., variants: ... }) if (isObject(pathOrConfig) && pathOrConfig.config === undefined && !isEmpty(pathOrConfig)) { return null } // require('tailwindcss')({ config: 'custom-config.js' }) if ( isObject(pathOrConfig) && pathOrConfig.config !== undefined && isString(pathOrConfig.config) ) { return path.resolve(pathOrConfig.config) } // require('tailwindcss')({ config: { theme: ..., variants: ... } }) if ( isObject(pathOrConfig) && pathOrConfig.config !== undefined && isObject(pathOrConfig.config) ) { return null } // require('tailwindcss')('custom-config.js') if (isString(pathOrConfig)) { return path.resolve(pathOrConfig) } // require('tailwindcss') return resolveDefaultConfigPath() } export function resolveDefaultConfigPath() { for (const configFile of defaultConfigFiles) { try { const configPath = path.resolve(configFile) fs.accessSync(configPath) return configPath } catch (err) {} } return null }