fix(compiler-sfc): support TS runtime enum in <script setup>
This commit is contained in:
@@ -937,20 +937,6 @@ export function compileScript(
|
||||
walkDeclaration(node, setupBindings, userImportAlias)
|
||||
}
|
||||
|
||||
// Type declarations
|
||||
if (node.type === 'VariableDeclaration' && node.declare) {
|
||||
s.remove(start, end)
|
||||
}
|
||||
|
||||
// move all type declarations to outer scope
|
||||
if (
|
||||
node.type.startsWith('TS') ||
|
||||
(node.type === 'ExportNamedDeclaration' && node.exportKind === 'type')
|
||||
) {
|
||||
recordType(node, declaredTypes)
|
||||
s.move(start, end, 0)
|
||||
}
|
||||
|
||||
// walk statements & named exports / variable declarations for top level
|
||||
// await
|
||||
if (
|
||||
@@ -986,6 +972,24 @@ export function compileScript(
|
||||
node
|
||||
)
|
||||
}
|
||||
|
||||
if (isTS) {
|
||||
// runtime enum
|
||||
if (node.type === 'TSEnumDeclaration' && !node.const) {
|
||||
registerBinding(setupBindings, node.id, BindingTypes.SETUP_CONST)
|
||||
}
|
||||
|
||||
// move all Type declarations to outer scope
|
||||
if (
|
||||
node.type.startsWith('TS') ||
|
||||
(node.type === 'ExportNamedDeclaration' &&
|
||||
node.exportKind === 'type') ||
|
||||
(node.type === 'VariableDeclaration' && node.declare)
|
||||
) {
|
||||
recordType(node, declaredTypes)
|
||||
s.move(start, end, 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// in parse only mode, we should have collected all the information we need,
|
||||
|
||||
Reference in New Issue
Block a user