diff --git a/packages/preview/src/index.ts b/packages/preview/src/index.ts index aa52627db..b56457a3d 100644 --- a/packages/preview/src/index.ts +++ b/packages/preview/src/index.ts @@ -40,7 +40,6 @@ export function createPreviewWebSocket(options: { fileName: string, range: [number, number], }; - console.log(data); const url = options.getOpenFileUrl(data.fileName, data.range); ws.send(JSON.stringify({ diff --git a/packages/vue-code-gen/src/generators/script.ts b/packages/vue-code-gen/src/generators/script.ts index f756a96da..56c2e828c 100644 --- a/packages/vue-code-gen/src/generators/script.ts +++ b/packages/vue-code-gen/src/generators/script.ts @@ -271,10 +271,7 @@ export function generate( if (scriptSetup && scriptSetupRanges) { if (scriptSetupRanges.propsRuntimeArg || scriptSetupRanges.propsTypeArg) { codeGen.addText(`props: (`); - if (scriptSetupRanges.propsRuntimeArg) { - addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.propsRuntimeArg.start, scriptSetupRanges.propsRuntimeArg.end); - } - else if (scriptSetupRanges.propsTypeArg) { + if (scriptSetupRanges.propsTypeArg) { usedTypes.DefinePropsToOptions = true; codeGen.addText(`{} as `); @@ -293,19 +290,22 @@ export function generate( codeGen.addText(`>`); } } + else if (scriptSetupRanges.propsRuntimeArg) { + addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.propsRuntimeArg.start, scriptSetupRanges.propsRuntimeArg.end); + } codeGen.addText(`),\n`); } - if (scriptSetupRanges.emitsRuntimeArg) { - codeGen.addText(`emits: (`); - addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.emitsRuntimeArg.start, scriptSetupRanges.emitsRuntimeArg.end); - codeGen.addText(`),\n`); - } - else if (scriptSetupRanges.emitsTypeArg) { + if (scriptSetupRanges.emitsTypeArg) { usedTypes.ConstructorOverloads = true; codeGen.addText(`emits: ({} as __VLS_UnionToIntersection<__VLS_ConstructorOverloads<`); addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.emitsTypeArg.start, scriptSetupRanges.emitsTypeArg.end); codeGen.addText(`>>),\n`); } + else if (scriptSetupRanges.emitsRuntimeArg) { + codeGen.addText(`emits: (`); + addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.emitsRuntimeArg.start, scriptSetupRanges.emitsRuntimeArg.end); + codeGen.addText(`),\n`); + } const bindingsArr: { bindings: { start: number, end: number }[], content: string, @@ -337,7 +337,12 @@ export function generate( writeTemplate(); codeGen.addText(`};\n`); - if (scriptSetupRanges.exposeRuntimeArg) { + if (scriptSetupRanges.exposeTypeArg) { + codeGen.addText(`return { } as `); + addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.exposeTypeArg.start, scriptSetupRanges.exposeTypeArg.end); + codeGen.addText(`;\n`); + } + else if (scriptSetupRanges.exposeRuntimeArg) { codeGen.addText(`return `); addExtraReferenceVirtualCode('scriptSetup', scriptSetupRanges.exposeRuntimeArg.start, scriptSetupRanges.exposeRuntimeArg.end); codeGen.addText(`;\n`); @@ -425,7 +430,7 @@ export function generate( ); codeGen.addText(`),\n`); } - if (scriptSetupRanges?.propsTypeArg && scriptSetup) { + else if (scriptSetupRanges?.propsTypeArg && scriptSetup) { codeGen.addText(`props: ({} as `); codeGen.addCode( scriptSetup.content.substring(scriptSetupRanges.propsTypeArg.start, scriptSetupRanges.propsTypeArg.end), @@ -459,7 +464,7 @@ export function generate( ); codeGen.addText(`),\n`); } - if (scriptSetupRanges?.emitsTypeArg && scriptSetup) { + else if (scriptSetupRanges?.emitsTypeArg && scriptSetup) { codeGen.addText(`emits: ({} as `); codeGen.addCode( scriptSetup.content.substring(scriptSetupRanges.emitsTypeArg.start, scriptSetupRanges.emitsTypeArg.end), diff --git a/packages/vue-code-gen/src/parsers/scriptSetupRanges.ts b/packages/vue-code-gen/src/parsers/scriptSetupRanges.ts index 34b6a88da..b108f3c82 100644 --- a/packages/vue-code-gen/src/parsers/scriptSetupRanges.ts +++ b/packages/vue-code-gen/src/parsers/scriptSetupRanges.ts @@ -14,6 +14,7 @@ export function parseScriptSetupRanges(ts: typeof import('typescript/lib/tsserve let emitsRuntimeArg: TextRange | undefined; let emitsTypeArg: TextRange | undefined; let exposeRuntimeArg: TextRange | undefined; + let exposeTypeArg: TextRange | undefined; let emitsTypeNums = -1; const bindings = parseBindingRanges(ts, ast, false); @@ -48,6 +49,7 @@ export function parseScriptSetupRanges(ts: typeof import('typescript/lib/tsserve emitsTypeArg, emitsTypeNums, exposeRuntimeArg, + exposeTypeArg, }; function _getStartEnd(node: ts.Node) { @@ -72,7 +74,7 @@ export function parseScriptSetupRanges(ts: typeof import('typescript/lib/tsserve exposeRuntimeArg = _getStartEnd(runtimeArg); } } - else if (node.typeArguments?.length) { + if (node.typeArguments?.length) { const typeArg = node.typeArguments[0]; if (callText === 'defineProps') { propsTypeArg = _getStartEnd(typeArg); @@ -83,6 +85,9 @@ export function parseScriptSetupRanges(ts: typeof import('typescript/lib/tsserve emitsTypeNums = typeArg.members.length; } } + else if (callText === 'defineExpose') { + exposeTypeArg = _getStartEnd(typeArg); + } } } else if (callText === 'withDefaults') {