Skip to content

Commit 0a49334

Browse files
nmergetsamijaber
andauthored
fix: issue with stencil event type (#1728)
* fix: issue with stencil event type * chore: update snapshots * fix: add `Required` for events * fix: add void as fallback for events * chore: update snapshots --------- Co-authored-by: Sami Jaber <[email protected]>
1 parent d38d922 commit 0a49334

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

.changeset/neat-knives-search.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@builder.io/mitosis': patch
3+
---
4+
5+
[stencil] Fix issue for `EventEmitter` using Parameters as type instead of ReturnType

packages/core/src/__tests__/__snapshots__/stencil.test.ts.snap

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7545,8 +7545,12 @@ import {
75457545
tag: \\"event-props-component\\",
75467546
})
75477547
export class EventPropsComponent {
7548-
@Event() getVoid: EventEmitter<ReturnType<Required<EventProps>[\\"onGetVoid\\"]>>;
7549-
@Event() enter: EventEmitter<ReturnType<Required<EventProps>[\\"onEnter\\"]>>;
7548+
@Event() getVoid: EventEmitter<
7549+
Parameters<Required<EventProps>[\\"onGetVoid\\"]>[number]
7550+
> | void;
7551+
@Event() enter: EventEmitter<
7552+
Parameters<Required<EventProps>[\\"onEnter\\"]>[number]
7553+
> | void;
75507554

75517555
handleClick() {
75527556
if (this.getVoid) {

packages/core/src/generators/stencil/helpers/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export const getPropsAsCode = ({
8989
// Stencil adds "on" to every `@Event` so we need to remove "on" from event props
9090
// https://stenciljs.com/docs/events#using-events-in-jsx
9191
const eventType = hasTyping
92-
? `EventEmitter<ReturnType<Required<${propsTypeRef}>["${item}"]>>`
92+
? `EventEmitter<Parameters<Required<${propsTypeRef}>["${item}"]>[number]> | void`
9393
: 'any';
9494

9595
return `@Event() ${getEventNameWithoutOn(item)}: ${eventType}${defaultPropString}`;

0 commit comments

Comments
 (0)