Skip to content

Commit

Permalink
feat(nuxt): add writeVSCode function to module.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
productdevbook committed Feb 15, 2024
1 parent 8c68d78 commit 714f289
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 8 deletions.
22 changes: 14 additions & 8 deletions packages/nuxt/src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import type { PergelModuleNames, PergelOptions, ResolvedPergelOptions } from './
import { writeFilePergel } from './runtime/core/utils/writeFilePergel'
import { writeEnvExample } from './utils/writeEnvExample'
import { writeDockerCompose } from './utils/writeDockerCompose'
import { writeVSCode } from './utils/writeVSCode'

export interface ModulePublicRuntimeConfig {
slugify: {
Expand Down Expand Up @@ -222,11 +223,20 @@ export default defineNuxtModule<PergelOptions>({
logger.success(`${DEVTOOLS_MODULE_NAME} is ready!`)
}

// Auto generate pergel/[projectName].docker-compose.yml
writeDockerCompose(nuxt)
if (nuxt._pergel.exitPergelFolder) {
// Auto generate pergel/[projectName].docker-compose.yml
writeDockerCompose(nuxt)

// Auto generate pergel/.env.example
writeEnvExample(nuxt)
// Auto generate pergel/.env.example
writeEnvExample(nuxt)

// Auto generate pergel/merged-package.json
generateMergedPackageJson({
nuxt,
})

writeVSCode(nuxt)
}

// functiontemplate
if (nuxt._pergel.functionTemplates && nuxt._pergel.functionTemplates.length > 0) {
Expand All @@ -237,10 +247,6 @@ export default defineNuxtModule<PergelOptions>({
writeFilePergel(writeDir, contents)
}
}

generateMergedPackageJson({
nuxt,
})
},
})

Expand Down
36 changes: 36 additions & 0 deletions packages/nuxt/src/utils/writeVSCode.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { join } from 'node:path'
import type { NuxtPergel } from '../runtime/core/types/nuxtModule'
import { writeFilePergel } from '../runtime/core/utils/writeFilePergel'

export function writeVSCode(
nuxt: NuxtPergel,
) {
const readme = Object.keys(nuxt._pergel.readmeJson).map((projectName) => {
const project = nuxt._pergel.readmeJson[projectName]
const modules = Object.keys(project).map((moduleName) => {
const module = project[moduleName]
const vscode = module.vscode
return { moduleName, vscode }
})
return { projectName, modules }
})

let vsCodeObject = {}

for (const project of readme) {
const modules = project.modules
for (const module of modules) {
const vscode = module.vscode
if (vscode) {
vsCodeObject = {
...vsCodeObject,
...vscode,
}
}
}
}

const file = join(nuxt.options.rootDir, 'pergel', '.vscode', 'settings.json')

nuxt._pergel.exitPergelFolder && writeFilePergel(file, JSON.stringify(vsCodeObject, null, 2))
}

0 comments on commit 714f289

Please sign in to comment.