3
3
const fs = require ( 'fs' ) ;
4
4
const path = require ( 'path' ) ;
5
5
const packageFolder = __dirname ;
6
+ const whitelist = [ 'package' , 'webpack' , 'tailwind.config' ]
6
7
7
8
let lang = Intl . DateTimeFormat ( ) . resolvedOptions ( ) . locale ;
8
9
lang = ( lang === 'pt-BR' || lang === 'en-US' )
@@ -72,7 +73,7 @@ const replaceLangs = (content) => {
72
73
return content ;
73
74
} ;
74
75
75
- Nulla . run = ( names , isTS , isTailwind ) => {
76
+ Nulla . run = ( names , isTS , isTailwind , tailwindVersion = 'v3' ) => {
76
77
const { projectSlug, projectName } = names ;
77
78
const projectPath = path . join ( process . cwd ( ) , projectSlug ) ;
78
79
@@ -92,23 +93,27 @@ Nulla.run = (names, isTS, isTailwind) => {
92
93
// Tailwind check, remove all default files and replace them with Tailwind defaults
93
94
if ( isTailwind )
94
95
for ( const file of Files . files ) {
95
- if ( file . includes ( ".tailwind" ) ) {
96
+ if ( file . includes ( ".tailwind" ) && tailwindVersion === 'v3' && ! file . includes ( '-v4' ) ) {
96
97
tailwindReplace . push ( file . replace ( ".tailwind" , "" ) )
97
98
}
99
+ else if ( file . includes ( '.tailwind' ) && tailwindVersion === 'v4' && ( file . includes ( '-v4' ) || ! whitelist . some ( x => file . includes ( x ) ) ) )
100
+ tailwindReplace . push ( file . replace ( ".tailwind-v4" , "" ) . replace ( ".tailwind" , "" ) )
98
101
}
99
-
102
+
100
103
for ( const file of Files . files ) {
101
104
if ( file . match ( new RegExp ( `.${ isTS ? 'js' : 'ts' } x?$` ) ) && file . indexOf ( '.config.' ) === - 1 ) continue ;
102
105
if ( ! isTS && / t s c o n f i g .j s o n / . test ( file ) ) continue ;
103
106
104
107
// Tailwind replacer
105
108
if ( isTailwind ) {
106
-
109
+ if ( tailwindVersion === 'v3' && file . includes ( '-v4' ) ) continue ;
110
+ if ( tailwindVersion === 'v4' && whitelist . some ( x => file . includes ( x ) && ! file . includes ( '-v4' ) ) ) continue ;
107
111
// Check if the file is going to be replaced by tailwind file
108
112
if ( tailwindReplace . includes ( file ) ) continue ;
109
113
110
114
// Do not include css files unless they're supposed to be included
111
- if ( file . endsWith ( ".css" ) && ! file . includes ( "tailwind." ) ) continue ;
115
+ if ( file . endsWith ( ".css" ) && ! file . includes ( "tailwind." ) && tailwindVersion === 'v3' ) continue ;
116
+ if ( file . endsWith ( ".css" ) && tailwindVersion === 'v4' && ! file . includes ( '-v4' ) ) continue
112
117
113
118
} else if ( file . includes ( "tailwind" ) ) continue ; // If it is not tailwind, do not add tailwind files to the bundle
114
119
@@ -118,7 +123,7 @@ Nulla.run = (names, isTS, isTailwind) => {
118
123
) ;
119
124
content = Nulla . contentReplacer ( content , 'NAME' , projectName ) ;
120
125
content = Nulla . contentReplacer ( content , 'SLUG' , projectSlug ) ;
121
- const target = path . join ( projectPath , file . replace ( '_' , '.' ) . replace ( '.tailwind' , '' ) ) ;
126
+ const target = path . join ( projectPath , file . replace ( '_' , '.' ) . replace ( '.tailwind-v4 ' , '' ) . replace ( '.tailwind' , '' ) . replace ( "-v4" , "" ) ) ;
122
127
content = Nulla . contentReplacer ( content , 'SRC' , srcFolder ) ;
123
128
content = Nulla . contentReplacer ( content , 'LANG' , lang ) ;
124
129
content = replaceLangs ( content ) ;
@@ -181,10 +186,10 @@ Nulla.errorHandler = (e) => {
181
186
}
182
187
} ;
183
188
184
- Nulla . tryRun = ( name , isTS , isTailwind ) => {
189
+ Nulla . tryRun = ( name , isTS , isTailwind , tailwindVersion ) => {
185
190
try {
186
191
const names = Nulla . storeNames ( name ) ;
187
- Nulla . run ( names , isTS , isTailwind ) ;
192
+ Nulla . run ( names , isTS , isTailwind , tailwindVersion ) ;
188
193
} catch ( e ) {
189
194
Nulla . errorHandler ( e ) ;
190
195
}
0 commit comments