fix: resolve options for parser

ref: https://github.com/vuejs/core/pull/9760
This commit is contained in:
三咲智子 Kevin Deng 2023-12-06 14:37:40 +08:00
parent 505c5a8c07
commit a9f2bfcdba
No known key found for this signature in database
GPG Key ID: 69992F2250DFD93E
2 changed files with 11 additions and 17 deletions

View File

@ -82,7 +82,10 @@ export function baseCompile(
onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED)) onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED))
} }
const ast = isString(source) ? baseParse(source, options) : source const resolvedOptions = extend({}, options, {
prefixIdentifiers
})
const ast = isString(source) ? baseParse(source, resolvedOptions) : source
const [nodeTransforms, directiveTransforms] = const [nodeTransforms, directiveTransforms] =
getBaseTransformPreset(prefixIdentifiers) getBaseTransformPreset(prefixIdentifiers)
@ -95,8 +98,7 @@ export function baseCompile(
transform( transform(
ast, ast,
extend({}, options, { extend({}, resolvedOptions, {
prefixIdentifiers,
nodeTransforms: [ nodeTransforms: [
...nodeTransforms, ...nodeTransforms,
...(options.nodeTransforms || []) // user transforms ...(options.nodeTransforms || []) // user transforms
@ -109,10 +111,5 @@ export function baseCompile(
}) })
) )
return generate( return generate(ast, resolvedOptions)
ast,
extend({}, options, {
prefixIdentifiers
})
)
} }

View File

@ -49,7 +49,10 @@ export function compile(
// onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED)) // onError(createCompilerError(ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED))
// } // }
const ast = isString(source) ? parse(source, options) : source const resolvedOptions = extend({}, options, {
prefixIdentifiers,
})
const ast = isString(source) ? parse(source, resolvedOptions) : source
const [nodeTransforms, directiveTransforms] = const [nodeTransforms, directiveTransforms] =
getBaseTransformPreset(prefixIdentifiers) getBaseTransformPreset(prefixIdentifiers)
@ -63,7 +66,6 @@ export function compile(
const ir = transform( const ir = transform(
ast, ast,
extend({}, options, { extend({}, options, {
prefixIdentifiers,
nodeTransforms: [ nodeTransforms: [
...nodeTransforms, ...nodeTransforms,
...(options.nodeTransforms || []), // user transforms ...(options.nodeTransforms || []), // user transforms
@ -76,12 +78,7 @@ export function compile(
}), }),
) )
return generate( return generate(ir, resolvedOptions)
ir,
extend({}, options, {
prefixIdentifiers,
}),
)
} }
export type TransformPreset = [ export type TransformPreset = [