Skip to content

Commit

Permalink
feat(compiler-sfc): add ignoreEmpty option for sfc parse method
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Jul 19, 2021
1 parent ec6abe8 commit 8dbecfc
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
22 changes: 22 additions & 0 deletions packages/compiler-sfc/__tests__/parse.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,28 @@ h1 { color: red }
expect(descriptor.script!.attrs['src']).toBe('com')
})

test('ignoreEmpty: false', () => {
const { descriptor } = parse(
`<script></script>\n<script setup>\n</script>`,
{
ignoreEmpty: false
}
)
expect(descriptor.script).toBeTruthy()
expect(descriptor.script!.loc).toMatchObject({
source: '',
start: { line: 1, column: 9, offset: 8 },
end: { line: 1, column: 9, offset: 8 }
})

expect(descriptor.scriptSetup).toBeTruthy()
expect(descriptor.scriptSetup!.loc).toMatchObject({
source: '\n',
start: { line: 2, column: 15, offset: 32 },
end: { line: 3, column: 1, offset: 33 }
})
})

test('nested templates', () => {
const content = `
<template v-if="ok">ok</template>
Expand Down
9 changes: 8 additions & 1 deletion packages/compiler-sfc/src/parse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export interface SFCParseOptions {
sourceMap?: boolean
sourceRoot?: string
pad?: boolean | 'line' | 'space'
ignoreEmpty?: boolean
compiler?: TemplateCompiler
}

Expand Down Expand Up @@ -104,6 +105,7 @@ export function parse(
filename = 'anonymous.vue',
sourceRoot = '',
pad = false,
ignoreEmpty = true,
compiler = CompilerDOM
}: SFCParseOptions = {}
): SFCParseResult {
Expand Down Expand Up @@ -163,7 +165,12 @@ export function parse(
return
}
// we only want to keep the nodes that are not empty (when the tag is not a template)
if (node.tag !== 'template' && isEmpty(node) && !hasSrc(node)) {
if (
ignoreEmpty &&
node.tag !== 'template' &&
isEmpty(node) &&
!hasSrc(node)
) {
return
}
switch (node.tag) {
Expand Down

0 comments on commit 8dbecfc

Please sign in to comment.