File tree Expand file tree Collapse file tree 4 files changed +40
-14
lines changed
packages-private/sfc-playground Expand file tree Collapse file tree 4 files changed +40
-14
lines changed Original file line number Diff line number Diff line change 1313 "vite" : " catalog:"
1414 },
1515 "dependencies" : {
16- "@vue/repl" : " ^4.5.0 " ,
16+ "@vue/repl" : " ^4.5.1 " ,
1717 "file-saver" : " ^2.0.5" ,
1818 "jszip" : " ^3.10.1" ,
1919 "vue" : " workspace:*"
Original file line number Diff line number Diff line change @@ -381,6 +381,17 @@ h1 { color: red }
381381 } )
382382 } )
383383
384+ describe ( 'vapor mode' , ( ) => {
385+ test ( 'on empty script' , ( ) => {
386+ const { descriptor } = parse ( `<script vapor></script>` )
387+ expect ( descriptor . vapor ) . toBe ( true )
388+ } )
389+ test ( 'on template' , ( ) => {
390+ const { descriptor } = parse ( `<template vapor><div/></template>` )
391+ expect ( descriptor . vapor ) . toBe ( true )
392+ } )
393+ } )
394+
384395 describe ( 'warnings' , ( ) => {
385396 function assertWarning ( errors : Error [ ] , msg : string ) {
386397 expect ( errors . some ( e => e . message . match ( msg ) ) ) . toBe ( true )
Original file line number Diff line number Diff line change @@ -162,8 +162,9 @@ export function parse(
162162 ignoreEmpty &&
163163 node . tag !== 'template' &&
164164 isEmpty ( node ) &&
165- ! hasSrc ( node )
165+ ! hasAttr ( node , 'src' )
166166 ) {
167+ descriptor . vapor ||= hasAttr ( node , 'vapor' )
167168 return
168169 }
169170 switch ( node . tag ) {
@@ -409,13 +410,8 @@ function padContent(
409410 }
410411}
411412
412- function hasSrc ( node : ElementNode ) {
413- return node . props . some ( p => {
414- if ( p . type !== NodeTypes . ATTRIBUTE ) {
415- return false
416- }
417- return p . name === 'src'
418- } )
413+ function hasAttr ( node : ElementNode , name : string ) {
414+ return node . props . some ( p => p . type === NodeTypes . ATTRIBUTE && p . name === name )
419415}
420416
421417/**
You can’t perform that action at this time.
0 commit comments