Skip to content

Commit

Permalink
fix: improve types generation
Browse files Browse the repository at this point in the history
  • Loading branch information
pi0 committed Dec 23, 2021
1 parent 4991907 commit 68c02e6
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions src/build.ts
@@ -1,5 +1,6 @@
import { existsSync, promises as fsp } from 'fs'
import { resolve } from 'pathe'
import consola from 'consola'
import type { ModuleMeta } from '@nuxt/schema'

export async function buildModule (rootDir: string) {
Expand All @@ -23,13 +24,23 @@ export async function buildModule (rootDir: string) {
],
hooks: {
async 'rollup:done' (ctx) {
// Load meta
// Generate CommonJS stup
await writeCJSStub(ctx.options.outDir)

// Load module meta
const moduleEntryPath = resolve(ctx.options.outDir, 'module.mjs')
const moduleFn = await import(moduleEntryPath).then(r => r.default || r)
const moduleFn = await import(moduleEntryPath).then(r => r.default || r).catch((err) => {
consola.error(err)
console.error('Cannot load module. Please check dist:', moduleEntryPath)
return null
})
if (!moduleFn) {
return
}
const moduleMeta = await moduleFn.getMeta()

// Generate types
await writeTypes(ctx.options.outDir, moduleMeta)
await writeCJSStub(ctx.options.outDir)
}
}
})
Expand All @@ -44,8 +55,8 @@ async function writeTypes (distDir: string, meta: ModuleMeta) {
const schemaShims = []
if (meta.configKey) {
schemaShims.push(
` interface NuxtConfig { ${meta.configKey}?: ModuleOptions }`,
` interface NuxtOptions { ${meta.configKey}?: Partial<ModuleOptions> }`
` interface NuxtConfig { ['${meta.configKey}']?: Partial<ModuleOptions> }`,
` interface NuxtOptions { ['${meta.configKey}']?: ModuleOptions }`
)
}

Expand Down

0 comments on commit 68c02e6

Please sign in to comment.