Skip to content

Commit 399e0c2

Browse files
committed
chore: migrate to addTypeTemplate
1 parent b50529d commit 399e0c2

File tree

2 files changed

+18
-34
lines changed

2 files changed

+18
-34
lines changed

src/kit.ts

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,7 @@
1-
import { addTemplate, createResolver, logger, tryUseNuxt, useNuxt } from '@nuxt/kit'
2-
import { relative } from 'pathe'
1+
import { logger, tryUseNuxt } from '@nuxt/kit'
32
import { resolvePackageJSON } from 'pkg-types'
43
import { isCI, provider } from 'std-env'
54

6-
export function extendTypes(module: string, template: (options: { typesPath: string }) => Promise<string> | string) {
7-
const nuxt = useNuxt()
8-
const { resolve } = createResolver(import.meta.url)
9-
const fileName = `${module.replace('/', '-')}.d.ts`
10-
// paths.d.ts
11-
addTemplate({
12-
filename: `modules/${fileName}`,
13-
getContents: async () => {
14-
const typesPath = relative(resolve(nuxt!.options.rootDir, nuxt!.options.buildDir, 'module'), resolve('runtime/types'))
15-
const s = await template({ typesPath })
16-
return `// Generated by ${module}
17-
${s}
18-
export {}
19-
`
20-
},
21-
})
22-
23-
nuxt.hooks.hook('prepare:types', ({ references }) => {
24-
references.push({ path: resolve(nuxt.options.buildDir, `modules/${fileName}`) })
25-
})
26-
}
27-
285
const isStackblitz = provider === 'stackblitz'
296

307
interface EnsurePackageInstalledOptions {

src/module.ts

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
addBuildPlugin,
33
addComponentsDir,
44
addImports,
5-
addPluginTemplate,
5+
addPluginTemplate, addTypeTemplate,
66
createResolver,
77
defineNuxtModule,
88
hasNuxtModule,
@@ -13,7 +13,7 @@ import { setupDevToolsUI } from './devtools'
1313
import { NuxtScriptBundleTransformer } from './plugins/transform'
1414
import { setupPublicAssetStrategy } from './assets'
1515
import { logger } from './logger'
16-
import { extendTypes, installNuxtModule } from './kit'
16+
import { installNuxtModule } from './kit'
1717
import { registry } from './registry'
1818
import type {
1919
NuxtConfigScriptRegistry,
@@ -24,6 +24,7 @@ import type {
2424
} from './runtime/types'
2525
import { NuxtScriptsCheckScripts } from './plugins/check-scripts'
2626
import { templatePlugin } from './templates'
27+
import { relative, resolve } from 'pathe'
2728

2829
export interface ModuleOptions {
2930
/**
@@ -171,9 +172,11 @@ export default defineNuxtModule<ModuleOptions>({
171172
const registryScriptsWithImport = registryScripts.filter(i => !!i.import?.name) as Required<RegistryScript>[]
172173
const newScripts = registryScriptsWithImport.filter(i => !scripts.some(r => r.import?.name === i.import.name))
173174

174-
// augment types to support the integrations registry
175-
extendTypes(name!, async ({ typesPath }) => {
176-
let types = `
175+
addTypeTemplate({
176+
filename: 'module/nuxt-scripts.d.ts',
177+
getContents: (data) => {
178+
const typesPath = relative(resolve(data.nuxt!.options.rootDir, data.nuxt!.options.buildDir, 'module'), resolve('runtime/types'))
179+
let types = `
177180
declare module '#app' {
178181
interface NuxtApp {
179182
$scripts: Record<${[...Object.keys(config.globals || {}), ...Object.keys(config.registry || {})].map(k => `'${k}'`).concat(['string']).join(' | ')}, (import('#nuxt-scripts/types').UseScriptContext<any>)>
@@ -184,8 +187,8 @@ declare module '#app' {
184187
}
185188
}
186189
`
187-
if (newScripts.length) {
188-
types = `${types}
190+
if (newScripts.length) {
191+
types = `${types}
189192
declare module '#nuxt-scripts/types' {
190193
type NuxtUseScriptOptions = Omit<import('${typesPath}').NuxtUseScriptOptions, 'use' | 'beforeInit'>
191194
interface ScriptRegistry {
@@ -196,9 +199,13 @@ ${newScripts.map((i) => {
196199
}).join('\n')}
197200
}
198201
}`
199-
return types
200-
}
201-
return types
202+
return types
203+
}
204+
return `${types}
205+
export {}`
206+
},
207+
}, {
208+
nuxt: true,
202209
})
203210

204211
if (Object.keys(config.globals || {}).length || Object.keys(config.registry || {}).length) {

0 commit comments

Comments
 (0)