@@ -8,7 +8,7 @@ import { wrapWith } from '../utils/wrapWith';
8
8
import type { TemplateCodegenContext } from './context' ;
9
9
import type { TemplateCodegenOptions } from './index' ;
10
10
import { generateInterpolation } from './interpolation' ;
11
- import { generatePropertyAccess } from './propertyAccess ' ;
11
+ import { generateObjectProperty } from './objectProperty ' ;
12
12
13
13
export function * generateElementEvents (
14
14
options : TemplateCodegenOptions ,
@@ -54,16 +54,21 @@ export function* generateElementEvents(
54
54
propPrefix = 'onVnode-' ;
55
55
emitPrefix = 'vnode-' ;
56
56
}
57
- yield `(): __VLS_NormalizeComponentEvent<typeof ${ propsVar } , typeof ${ emitsVar } , '${ camelize ( propPrefix + source ) } ', '${ emitPrefix + source } ', '${ camelize ( emitPrefix + source ) } '> => (` ;
58
- yield emitsVar ;
59
- yield * generatePropertyAccess (
60
- options ,
61
- ctx ,
62
- emitPrefix + source ,
63
- start ,
64
- ctx . codeFeatures . navigation
65
- ) ;
66
- yield `, {${ newLine } ` ;
57
+ yield `(): __VLS_NormalizeComponentEvent<typeof ${ propsVar } , typeof ${ emitsVar } , '${ camelize ( propPrefix + source ) } ', '${ emitPrefix + source } ', '${ camelize ( emitPrefix + source ) } '> => (${ newLine } ` ;
58
+ if ( prop . name === 'on' ) {
59
+ yield `{ ` ;
60
+ yield * generateObjectProperty (
61
+ options ,
62
+ ctx ,
63
+ emitPrefix + source ,
64
+ start ! ,
65
+ ctx . codeFeatures . navigation ,
66
+ undefined ,
67
+ true
68
+ ) ;
69
+ yield `: {} as any } as typeof ${ emitsVar } ,${ newLine } ` ;
70
+ }
71
+ yield `{ ` ;
67
72
if ( prop . name === 'on' ) {
68
73
yield * generateEventArg ( ctx , source , start ! , propPrefix . slice ( 0 , - 1 ) ) ;
69
74
yield `: ` ;
0 commit comments