11import { window } from 'vscode'
22import { mkdirSync , existsSync } from 'node:fs'
3- import { isNuxtTwo , createFile , projectRootDirectory , projectSrcDirectory } from '../utils'
3+ import { isNuxtTwo , createFile , projectRootDirectory , projectSrcDirectory , generateVueFileTemplate } from '../utils'
44import { appConfigContent } from '../templates'
5- import { generateVueFileTemplate } from '../utils/files'
65
76function promptDirectorySelection ( ) {
8- let directories = [
9- 'components' ,
10- 'pages' ,
11- 'assets' ,
12- 'plugins' ,
13- 'layouts' ,
14- 'middleware' ,
15- 'modules' ,
16- ]
7+ let directories = [ 'components' , 'pages' , 'assets' , 'plugins' , 'layouts' , 'middleware' , 'modules' , ]
178
189 let nuxtTwoDirectories = [ 'static' , 'store' , ]
1910
@@ -23,6 +14,8 @@ function promptDirectorySelection() {
2314 ? ( directories = [ ...directories , ...nuxtTwoDirectories ] )
2415 : ( directories = [ ...directories , ...nuxtThreeDirectories ] )
2516
17+ directories . sort ( )
18+
2619 window
2720 . showQuickPick ( directories , {
2821 canPickMany : true ,
@@ -31,16 +24,24 @@ function promptDirectorySelection() {
3124 . then ( ( selectedDirs ) => {
3225 if ( selectedDirs !== undefined && selectedDirs . length > 0 ) {
3326 selectedDirs . forEach ( ( dir ) => {
34- let path = `${ projectSrcDirectory ( ) } /${ dir } `
35- if ( ! existsSync ( path ) ) {
36- mkdirSync ( path )
27+ let dirPath = `${ projectSrcDirectory ( ) } /${ dir } `
28+ if ( ! existsSync ( dirPath ) ) {
29+ mkdirSync ( dirPath )
3730 }
3831
3932 if ( dir === 'pages' ) {
4033 createFile ( {
4134 fileName : `index.vue` ,
4235 content : generateVueFileTemplate ( 'page' ) ,
43- fullPath : `${ path } /index.vue` ,
36+ fullPath : `${ dirPath } /index.vue` ,
37+ } )
38+ }
39+
40+ if ( dir === 'layouts' ) {
41+ createFile ( {
42+ fileName : `default.vue` ,
43+ content : generateVueFileTemplate ( 'layout' ) ,
44+ fullPath : `${ dirPath } /default.vue` ,
4445 } )
4546 }
4647 } )
@@ -76,4 +77,12 @@ const nuxtRC = () => {
7677 } )
7778}
7879
79- export { projectStructure , appConfig , nuxtIgnore , nuxtRC }
80+ const errorLayout = ( ) => {
81+ createFile ( {
82+ fileName : 'error.vue' ,
83+ content : generateVueFileTemplate ( 'page' ) ,
84+ fullPath : `${ projectSrcDirectory ( ) } /error.vue` ,
85+ } )
86+ }
87+
88+ export { projectStructure , appConfig , nuxtIgnore , nuxtRC , errorLayout }
0 commit comments