|
1 | 1 | #!/usr/bin/env node
|
2 |
| -const fs = require('fs'); |
| 2 | +const TEMP_DIR = './tmp'; |
| 3 | +const OUTPUT_PATH = `${TEMP_DIR}/tailwind.config.php`; |
3 | 4 |
|
4 |
| -try { |
5 |
| - const resolveConfig = require('tailwindcss/resolveConfig'); |
6 |
| - const config = require(process.env.CONFIGPATH); |
7 |
| - const tempDir = './tmp'; |
8 |
| - const outputPath = `${tempDir}/tailwind.config.php`; |
9 |
| - const fullConfig = resolveConfig(config); |
| 5 | +function parseConfig(data) { |
| 6 | + let output = ''; |
10 | 7 |
|
11 |
| - function parseConfig(data) { |
12 |
| - let output = ''; |
| 8 | + for (const [key, item] of Object.entries(data)) { |
| 9 | + const value = item == null || typeof item === 'function' ? null : item; |
| 10 | + const str = |
| 11 | + value && typeof value === 'object' |
| 12 | + ? parseConfig(value) |
| 13 | + : JSON.stringify(value); |
13 | 14 |
|
14 |
| - for (const [key, item] of Object.entries(data)) { |
15 |
| - const value = item == null || typeof item === 'function' ? null : item; |
16 |
| - const str = |
17 |
| - value && typeof value === 'object' |
18 |
| - ? parseConfig(value) |
19 |
| - : JSON.stringify(value); |
| 15 | + output += `'${key}' => ${str},`; |
| 16 | + } |
20 | 17 |
|
21 |
| - output += `'${key}' => ${str},`; |
22 |
| - } |
| 18 | + return `[${output}]`; |
| 19 | +} |
23 | 20 |
|
24 |
| - return `[${output}]`; |
25 |
| - } |
| 21 | +async function resolveTailwindConfig() { |
| 22 | + const fs = await import('fs'); |
| 23 | + const { default: resolveConfig } = await import('tailwindcss/resolveConfig.js') |
| 24 | + const { default: config } = await import(process.env.CONFIGPATH) |
| 25 | + |
| 26 | + const fullConfig = resolveConfig(config); |
26 | 27 |
|
27 | 28 | try {
|
28 |
| - if (!fs.existsSync(tempDir)) { |
29 |
| - fs.mkdirSync(tempDir); |
| 29 | + if (!fs.existsSync(TEMP_DIR)) { |
| 30 | + fs.mkdirSync(TEMP_DIR); |
30 | 31 | }
|
31 | 32 |
|
32 |
| - fs.writeFileSync(outputPath, `<?php return ${parseConfig(fullConfig)};`); |
| 33 | + fs.writeFileSync(OUTPUT_PATH, `<?php return ${parseConfig(fullConfig)};`); |
33 | 34 | } catch (err) {
|
34 | 35 | console.error(err);
|
35 | 36 | }
|
| 37 | +} |
| 38 | + |
| 39 | +try { |
| 40 | + resolveTailwindConfig() |
36 | 41 | } catch (err) {
|
37 | 42 | console.error(err);
|
38 | 43 | }
|
0 commit comments