}"
`;
+exports[`SFC compile <script setup> defineProps/defineEmits in multi-variable declaration fix #6757 1`] = `
+"export default {
+ props: ['item'],
+ emits: ['a'],
+ setup(__props, { expose, emit }) {
+ expose();
+
+const props = __props
+
+ const a = 1;
+
+return { a, props, emit }
+}
+
+}"
+`;
+
exports[`SFC compile <script setup> dev mode import usage check TS annotations 1`] = `
"import { defineComponent as _defineComponent } from 'vue'
import { Foo, Bar, Baz, Qux, Fred } from './x'
expect(content).toMatch(`emits: ['a'],`)
})
+ // #6757
+ test('defineProps/defineEmits in multi-variable declaration fix #6757 ', () => {
+ const { content } = compile(`
+ <script setup>
+ const a = 1,
+ props = defineProps(['item']),
+ emit = defineEmits(['a']);
+ </script>
+ `)
+ assertCode(content)
+ expect(content).toMatch(`const a = 1;`) // test correct removal
+ expect(content).toMatch(`props: ['item'],`)
+ expect(content).toMatch(`emits: ['a'],`)
+ })
+
test('defineProps/defineEmits in multi-variable declaration (full removal)', () => {
const { content } = compile(`
<script setup>
} else {
let start = decl.start! + startOffset
let end = decl.end! + startOffset
- if (i < total - 1) {
- // not the last one, locate the start of the next
+ if (i === 0) {
+ // first one, locate the start of the next
end = node.declarations[i + 1].start! + startOffset
} else {
- // last one, locate the end of the prev
+ // not first one, locate the end of the prev
start = node.declarations[i - 1].end! + startOffset
}
s.remove(start, end)