fix(compiler): add `vaporRuntimeModuleName` option

This commit is contained in:
三咲智子 Kevin Deng 2024-02-10 21:43:09 +08:00
parent 3d10925c53
commit 0c8153eca8
No known key found for this signature in database
GPG Key ID: 69992F2250DFD93E
3 changed files with 14 additions and 5 deletions

View File

@ -87,7 +87,10 @@ export enum NewlineType {
}
export interface CodegenContext
extends Omit<Required<CodegenOptions>, 'bindingMetadata' | 'inline'> {
extends Omit<
Required<CodegenOptions>,
'bindingMetadata' | 'inline' | 'vaporRuntimeModuleName'
> {
source: string
code: string
line: number

View File

@ -318,6 +318,11 @@ export interface CodegenOptions extends SharedTransformCodegenOptions {
* @default 'vue'
*/
runtimeModuleName?: string
/**
* Customize where to import runtime helpers from.
* @default 'vue/vapor'
*/
vaporRuntimeModuleName?: string
/**
* Customize where to import ssr runtime helpers from/**
* @default 'vue/server-renderer'

View File

@ -63,7 +63,7 @@ export class CodegenContext {
public ir: RootIRNode,
options: CodegenOptions,
) {
const defaultOptions = {
const defaultOptions: Required<CodegenOptions> = {
mode: 'function',
prefixIdentifiers: options.mode === 'module',
sourceMap: false,
@ -72,6 +72,7 @@ export class CodegenContext {
optimizeImports: false,
runtimeGlobalName: `Vue`,
runtimeModuleName: `vue`,
vaporRuntimeModuleName: 'vue/vapor',
ssrRuntimeModuleName: 'vue/server-renderer',
ssr: false,
isTS: false,
@ -156,17 +157,17 @@ export function generate(
}
}
function genHelperImports({ helpers, vaporHelpers, code }: CodegenContext) {
function genHelperImports({ helpers, vaporHelpers, options }: CodegenContext) {
let imports = ''
if (helpers.size) {
imports += `import { ${[...helpers]
.map(h => `${h} as _${h}`)
.join(', ')} } from 'vue';\n`
.join(', ')} } from '${options.runtimeModuleName}';\n`
}
if (vaporHelpers.size) {
imports += `import { ${[...vaporHelpers]
.map(h => `${h} as _${h}`)
.join(', ')} } from 'vue/vapor';\n`
.join(', ')} } from '${options.vaporRuntimeModuleName}';\n`
}
return imports
}