Skip to content

Commit 25bbec3

Browse files
committed
fix: avoid invalid modules with definePage query
Fix #338
1 parent 69ea4f8 commit 25bbec3

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

playground/src/pages/index.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
<script lang="ts" setup>
2+
definePage({
3+
meta: {
4+
title: 'hello',
5+
},
6+
})
7+
</script>
8+
19
<template>
210
<main>
311
<h1>Home</h1>

src/core/definePage.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,18 @@ export function definePageTransform({
3131
code: string
3232
id: string
3333
}): Thenable<TransformResult> {
34-
if (!code.includes(MACRO_DEFINE_PAGE)) return
34+
// are we extracting only the definePage object
35+
const isExtractingDefinePage = MACRO_DEFINE_PAGE_QUERY.test(id)
36+
37+
if (!code.includes(MACRO_DEFINE_PAGE)) {
38+
return isExtractingDefinePage ? 'export default {}' : undefined
39+
}
3540

3641
// TODO: handle also non SFC
3742

3843
const sfc = parseSFC(code, id)
3944
if (!sfc.scriptSetup) return
4045

41-
// are we extracting only the definePage object
42-
const isExtractingDefinePage = MACRO_DEFINE_PAGE_QUERY.test(id)
43-
4446
const { script, scriptSetup, getSetupAst } = sfc
4547
const setupAst = getSetupAst()
4648

0 commit comments

Comments
 (0)