// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SFC compile <script setup> <script setup lang="ts"> extract emits 1`] = ` "import { defineComponent as __define__ } from 'vue' import { Slots as __Slots__ } from 'vue' declare function __emit__(e: 'foo' | 'bar'): void declare function __emit__(e: 'baz', id: number): void export function setup(_: {}, { emit: myEmit }: { emit: typeof __emit__, slots: __Slots__, attrs: Record<string, any> }) { return { } } export default __define__({ emits: [\\"foo\\", \\"bar\\", \\"baz\\"] as unknown as undefined, setup })" `; exports[`SFC compile <script setup> <script setup lang="ts"> extract props 1`] = ` "import { defineComponent as __define__ } from 'vue' import { Slots as __Slots__ } from 'vue' interface Test {} type Alias = number[] export function setup(myProps: { string: string number: number boolean: boolean object: object objectLiteral: { a: number } fn: (n: number) => void functionRef: Function objectRef: Object array: string[] arrayRef: Array<any> tuple: [number, number] set: Set<string> literal: 'foo' optional?: any recordRef: Record<string, null> interface: Test alias: Alias union: string | number literalUnion: 'foo' | 'bar' literalUnionMixed: 'foo' | 1 | boolean intersection: Test & {} }) { return { } } export default __define__({ props: { string: { type: String, required: true }, number: { type: Number, required: true }, boolean: { type: Boolean, required: true }, object: { type: Object, required: true }, objectLiteral: { type: Object, required: true }, fn: { type: Function, required: true }, functionRef: { type: Function, required: true }, objectRef: { type: Object, required: true }, array: { type: Array, required: true }, arrayRef: { type: Array, required: true }, tuple: { type: Array, required: true }, set: { type: Set, required: true }, literal: { type: String, required: true }, optional: { type: null, required: false }, recordRef: { type: Object, required: true }, interface: { type: Object, required: true }, alias: { type: Array, required: true }, union: { type: [String, Number], required: true }, literalUnion: { type: [String, String], required: true }, literalUnionMixed: { type: [String, Number, Boolean], required: true }, intersection: { type: Object, required: true } } as unknown as undefined, setup })" `; exports[`SFC compile <script setup> <script setup lang="ts"> hoist type declarations 1`] = ` "import { defineComponent as __define__ } from 'vue' import { Slots as __Slots__ } from 'vue' export interface Foo {} type Bar = {} export function setup() { const a = 1 return { a } } export default __define__({ setup })" `; exports[`SFC compile <script setup> errors should allow export default referencing imported binding 1`] = ` "import { bar } from './bar' export function setup() { return { bar } } const __default__ = { props: { foo: { default: () => bar } } } __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> errors should allow export default referencing re-exported binding 1`] = ` "import { bar } from './bar' export function setup() { return { bar } } const __default__ = { props: { foo: { default: () => bar } } } __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> errors should allow export default referencing scope var 1`] = ` "export function setup() { const bar = 1 return { } } const __default__ = { props: { foo: { default: bar => bar + 1 } } } __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> explicit setup signature 1`] = ` "export function setup(props, { emit }) { emit('foo') return { } } export default { setup }" `; exports[`SFC compile <script setup> exports export * from './x' 1`] = ` "import { toRefs as __toRefs__ } from 'vue' import * as __export_all_0__ from './x' export function setup() { const y = 1 return Object.assign( { y }, __toRefs__(__export_all_0__) ) } export default { setup }" `; exports[`SFC compile <script setup> exports export { x } 1`] = ` "export function setup() { const x = 1 const y = 2 return { x, y } } export default { setup }" `; exports[`SFC compile <script setup> exports export { x } from './x' 1`] = ` "import { x, y } from './x' export function setup() { return { x, y } } export default { setup }" `; exports[`SFC compile <script setup> exports export { x as default } 1`] = ` "import x from './x' export function setup() { const y = 1 return { y } } const __default__ = x __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> exports export { x as default } from './x' 1`] = ` "import { x as __default__ } from './x' import { y } from './x' export function setup() { return { y } } __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> exports export class X() {} 1`] = ` "export function setup() { class X {} return { X } } export default { setup }" `; exports[`SFC compile <script setup> exports export const { x } = ... (destructuring) 1`] = ` "export function setup() { const [a = 1, { b } = { b: 123 }, ...c] = useFoo() const { d = 2, _: [e], ...f } = useBar() return { a, b, c, d, e, f } } export default { setup }" `; exports[`SFC compile <script setup> exports export const x = ... 1`] = ` "export function setup() { const x = 1 return { x } } export default { setup }" `; exports[`SFC compile <script setup> exports export default from './x' 1`] = ` "import __default__ from './x' export function setup() { return { } } __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> exports export default in <script setup> 1`] = ` "export function setup() { const y = 1 return { y } } const __default__ = { props: ['foo'] } __default__.setup = setup export default __default__" `; exports[`SFC compile <script setup> exports export function x() {} 1`] = ` "export function setup() { function x(){} return { x } } export default { setup }" `; exports[`SFC compile <script setup> import dedupe between <script> and <script setup> 1`] = ` "import { x } from './x' export function setup() { x() return { } } export default { setup }" `; exports[`SFC compile <script setup> should hoist imports 1`] = ` "import { ref } from 'vue' export function setup() { return { } } export default { setup }" `;