11import { window } from 'vscode'
2- import {
3- isNuxtTwo ,
4- createFile ,
5- projectSrcDirectory ,
6- runCommand ,
7- openExternalLink ,
8- addNuxtModule ,
9- getInstallationCommand ,
10- } from '../utils'
11- import {
12- unoCSSConfig ,
13- windiCSSConfig ,
14- tailwindCSSFile ,
15- tailwindCSSConfig ,
16- vuetifyConfigFile ,
17- } from '../templates/css'
2+ import { unoCSSConfig , windiCSSConfig , tailwindCSSFile , tailwindCSSConfig , vuetifyConfigFile } from '../templates'
3+ import { isNuxtTwo , createFile , projectSrcDirectory , runCommand , openExternalLink , addNuxtModule , getInstallationCommand } from '../utils'
184
195const frameworks = [ 'TailwindCSS' , 'WindiCSS' , 'UnoCSS' , 'Vuetify' ]
206
7+ enum TailwindOptions {
8+ installModule = 'Install @nuxtjs/tailwindcss module and add it to nuxt config' ,
9+ createConfigFile = 'Create TailwindCSS config file' ,
10+ createTailwindCSSFile = 'Create tailwind.css file inside assets/css' ,
11+ }
12+
13+ enum WindiOptions {
14+ installModule = 'Install nuxt-windicss module and add it to nuxt config' ,
15+ createConfigFile = 'Create WindiCSS config file' ,
16+ }
17+
18+ enum UnoCSSOptions {
19+ installModule = 'Install unocss/nuxt module and add it to nuxt config' ,
20+ createConfigFile = 'Create uno.config.ts file' ,
21+ }
22+
23+ enum VuetifyOptions {
24+ installModule = 'Install @nuxtjs/vuetify module and add it to nuxt config' ,
25+ createConfigFile = 'Create vuetify.options.js file' ,
26+ }
27+
2128function configureCSS ( ) {
2229 window
2330 . showQuickPick ( frameworks , {
@@ -39,11 +46,8 @@ function configureCSS() {
3946
4047const configureTailwind = ( ) => {
4148 try {
42- const tailwindOptions = [
43- 'Install @nuxtjs/tailwindcss module and add it to nuxt config' ,
44- 'Create TailwindCSS config file' ,
45- 'Create tailwind.css file inside assets/css' ,
46- ]
49+
50+ const tailwindOptions = Object . values ( TailwindOptions )
4751
4852 window
4953 . showQuickPick ( tailwindOptions , {
@@ -52,7 +56,7 @@ const configureTailwind = () => {
5256 } )
5357 . then ( async ( selections ) => {
5458 if ( selections !== undefined && selections . length > 0 ) {
55- if ( selections . includes ( 'Install @nuxtjs/tailwindcss module and add it to nuxt config' ) ) {
59+ if ( selections . includes ( TailwindOptions . installModule ) ) {
5660 const moduleName = '@nuxtjs/tailwindcss'
5761 const command = await getInstallationCommand ( moduleName , true )
5862
@@ -65,7 +69,7 @@ const configureTailwind = () => {
6569 await addNuxtModule ( { npm : moduleName } )
6670 }
6771
68- if ( selections . includes ( 'Create tailwind.css file inside assets/css' ) ) {
72+ if ( selections . includes ( TailwindOptions . createTailwindCSSFile ) ) {
6973 const filePath = `${ projectSrcDirectory ( ) } /assets/css/tailwind.css`
7074
7175 await createFile ( {
@@ -75,7 +79,7 @@ const configureTailwind = () => {
7579 } )
7680 }
7781
78- if ( selections . includes ( 'Create TailwindCSS config file' ) ) {
82+ if ( selections . includes ( TailwindOptions . createConfigFile ) ) {
7983 await createFile ( {
8084 fileName : `tailwind.config.${ isNuxtTwo ( ) ? 'js' : 'ts' } ` ,
8185 content : tailwindCSSConfig ,
@@ -101,10 +105,7 @@ const configureWindi = async () => {
101105 try {
102106 const filePath = `${ projectSrcDirectory ( ) } /windi.config.${ isNuxtTwo ( ) ? 'js' : 'ts' } `
103107
104- const windiOptions = [
105- 'Install nuxt-windicss module and add it to nuxt config' ,
106- 'Create windi.config.js file' ,
107- ]
108+ const windiOptions = Object . values ( WindiOptions )
108109
109110 window
110111 . showQuickPick ( windiOptions , {
@@ -113,7 +114,7 @@ const configureWindi = async () => {
113114 } )
114115 . then ( async ( selections ) => {
115116 if ( selections !== undefined && selections . length > 0 ) {
116- if ( selections . includes ( 'Install nuxt-windicss module and add it to nuxt config' ) ) {
117+ if ( selections . includes ( WindiOptions . installModule ) ) {
117118 const moduleName = 'nuxt-windicss'
118119 const command = await getInstallationCommand ( moduleName , true )
119120
@@ -127,7 +128,7 @@ const configureWindi = async () => {
127128 await addNuxtModule ( { npm : moduleName } )
128129 }
129130
130- if ( selections . includes ( 'Create windi.config.js file' ) ) {
131+ if ( selections . includes ( WindiOptions . createConfigFile ) ) {
131132 await createFile ( {
132133 fileName : `windi.config.${ isNuxtTwo ( ) ? 'js' : 'ts' } ` ,
133134 content : windiCSSConfig ,
@@ -152,19 +153,16 @@ const configureUno = async () => {
152153 try {
153154 const filePath = `${ projectSrcDirectory ( ) } /uno.config.ts`
154155
155- const unoCssOptions = [
156- 'Install unocss/nuxt module and add it to nuxt config' ,
157- 'Create uno.config.ts file' ,
158- ]
156+ const unoCSSOptions = Object . values ( UnoCSSOptions )
159157
160158 window
161- . showQuickPick ( unoCssOptions , {
159+ . showQuickPick ( unoCSSOptions , {
162160 canPickMany : true ,
163161 placeHolder : 'Select files to create' ,
164162 } )
165163 . then ( async ( selections ) => {
166164 if ( selections !== undefined && selections . length > 0 ) {
167- if ( selections . includes ( 'Install unocss/nuxt module and add it to nuxt config' ) ) {
165+ if ( selections . includes ( UnoCSSOptions . installModule ) ) {
168166 const moduleName = '@unocss/nuxt'
169167 const command = await getInstallationCommand ( moduleName , true )
170168
@@ -178,7 +176,7 @@ const configureUno = async () => {
178176 await addNuxtModule ( { npm : moduleName } )
179177 }
180178
181- if ( selections . includes ( 'Create uno.config.ts file' ) ) {
179+ if ( selections . includes ( UnoCSSOptions . createConfigFile ) ) {
182180 await createFile ( {
183181 fileName : `uno.config.ts` ,
184182 content : unoCSSConfig ,
@@ -203,10 +201,7 @@ const configureVuetify = async () => {
203201 try {
204202 const filePath = `${ projectSrcDirectory ( ) } /vuetify.options.js`
205203
206- const vuetifyOptions = [
207- 'Install @nuxtjs/vuetify module and add it to nuxt config' ,
208- 'Create vuetify.options.js file' ,
209- ]
204+ const vuetifyOptions = Object . values ( VuetifyOptions )
210205
211206 window
212207 . showQuickPick ( vuetifyOptions , {
@@ -215,7 +210,7 @@ const configureVuetify = async () => {
215210 } )
216211 . then ( async ( selections ) => {
217212 if ( selections !== undefined && selections . length > 0 ) {
218- if ( selections . includes ( 'Install @nuxtjs/vuetify module and add it to nuxt config' ) ) {
213+ if ( selections . includes ( VuetifyOptions . installModule ) ) {
219214 const moduleName = '@nuxtjs/vuetify'
220215 const command = await getInstallationCommand ( moduleName , true )
221216
@@ -229,7 +224,7 @@ const configureVuetify = async () => {
229224 await addNuxtModule ( { npm : moduleName } )
230225 }
231226
232- if ( selections . includes ( 'Create vuetify.options.js file' ) ) {
227+ if ( selections . includes ( VuetifyOptions . createConfigFile ) ) {
233228 await createFile ( {
234229 fileName : `vuetify.options.js` ,
235230 content : vuetifyConfigFile ,
0 commit comments