Spaces:
Running
Running
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 | |
} | |