Spaces:
Sleeping
Sleeping
| import fs from 'fs' | |
| import path from 'path' | |
| const defaultConfigFiles = [ | |
| './tailwind.config.js', | |
| './tailwind.config.cjs', | |
| './tailwind.config.mjs', | |
| './tailwind.config.ts', | |
| './tailwind.config.cts', | |
| './tailwind.config.mts', | |
| ] | |
| 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 | |
| } | |