summaryrefslogtreecommitdiff
path: root/node_modules/tailwindcss/src/oxide/cli/init/index.ts
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/oxide/cli/init/index.ts
Docs
Diffstat (limited to 'node_modules/tailwindcss/src/oxide/cli/init/index.ts')
-rw-r--r--node_modules/tailwindcss/src/oxide/cli/init/index.ts59
1 files changed, 59 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/src/oxide/cli/init/index.ts b/node_modules/tailwindcss/src/oxide/cli/init/index.ts
new file mode 100644
index 0000000..abc93cd
--- /dev/null
+++ b/node_modules/tailwindcss/src/oxide/cli/init/index.ts
@@ -0,0 +1,59 @@
+import fs from 'fs'
+import path from 'path'
+
+function isESM() {
+ const pkgPath = path.resolve('./package.json')
+
+ try {
+ let pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))
+ return pkg.type && pkg.type === 'module'
+ } catch (err) {
+ return false
+ }
+}
+
+export function init(args) {
+ let messages: string[] = []
+
+ let isProjectESM = args['--ts'] || args['--esm'] || isESM()
+ let syntax = args['--ts'] ? 'ts' : isProjectESM ? 'js' : 'cjs'
+ let extension = args['--ts'] ? 'ts' : 'js'
+
+ let tailwindConfigLocation = path.resolve(args['_'][1] ?? `./tailwind.config.${extension}`)
+
+ if (fs.existsSync(tailwindConfigLocation)) {
+ messages.push(`${path.basename(tailwindConfigLocation)} already exists.`)
+ } else {
+ let stubContentsFile = fs.readFileSync(
+ args['--full']
+ ? path.resolve(__dirname, '../../../../stubs/config.full.js')
+ : path.resolve(__dirname, '../../../../stubs/config.simple.js'),
+ 'utf8'
+ )
+
+ let stubFile = fs.readFileSync(
+ path.resolve(__dirname, `../../../../stubs/tailwind.config.${syntax}`),
+ 'utf8'
+ )
+
+ // Change colors import
+ stubContentsFile = stubContentsFile.replace('../colors', 'tailwindcss/colors')
+
+ // Replace contents of {ts,js,cjs} file with the stub {simple,full}.
+ stubFile =
+ stubFile
+ .replace('__CONFIG__', stubContentsFile.replace('module.exports =', '').trim())
+ .trim() + '\n\n'
+
+ fs.writeFileSync(tailwindConfigLocation, stubFile, 'utf8')
+
+ messages.push(`Created Tailwind CSS config file: ${path.basename(tailwindConfigLocation)}`)
+ }
+
+ if (messages.length > 0) {
+ console.log()
+ for (let message of messages) {
+ console.log(message)
+ }
+ }
+}