summaryrefslogtreecommitdiff
path: root/node_modules/tailwindcss/src/util/resolveConfigPath.js
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:54:57 +0100
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:57:48 +0100
commitb1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch)
tree49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/tailwindcss/src/util/resolveConfigPath.js
Docs
Diffstat (limited to 'node_modules/tailwindcss/src/util/resolveConfigPath.js')
-rw-r--r--node_modules/tailwindcss/src/util/resolveConfigPath.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/src/util/resolveConfigPath.js b/node_modules/tailwindcss/src/util/resolveConfigPath.js
new file mode 100644
index 0000000..2b50789
--- /dev/null
+++ b/node_modules/tailwindcss/src/util/resolveConfigPath.js
@@ -0,0 +1,66 @@
+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
+}