Skip to content

Commit 9d5e3d2

Browse files
nandi95lmiller1990
authored andcommitted
Added PR fixes
1 parent fec4b46 commit 9d5e3d2

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

src/emit.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,31 @@
1-
import { setDevtoolsHook, devtools, ComponentPublicInstance } from 'vue'
2-
import { ComponentInternalInstance } from '@vue/runtime-core'
1+
import {
2+
setDevtoolsHook,
3+
devtools,
4+
ComponentPublicInstance,
5+
ComponentInternalInstance
6+
} from 'vue'
7+
8+
export type Events<T = unknown> = Record<number, Record<string, T[]>>
39

410
const enum DevtoolsHooks {
511
COMPONENT_EMIT = 'component:emit'
612
}
713

8-
let componentEvents: Record<string, unknown[]>
9-
let events: Record<string, typeof componentEvents>
14+
let events: Events
1015

1116
export function emitted<T = unknown>(
1217
vm: ComponentPublicInstance,
1318
eventName?: string
14-
): undefined | T[] | Record<string, T[]> {
19+
): undefined | Events<T>[number][string] | Events<T>[number] {
1520
const cid = vm.$.uid
1621

17-
const vmEvents = (events as Record<string, Record<string, T[]>>)[cid] || {}
22+
const vmEvents: Events<T>[number] = (events as Events<T>)[cid] || {}
1823
if (eventName) {
19-
return vmEvents ? (vmEvents as Record<string, T[]>)[eventName] : undefined
24+
return vmEvents ? vmEvents[eventName] : undefined
2025
}
2126

22-
return vmEvents as Record<string, T[]>
27+
return vmEvents
2328
}
24-
type Events = { [id: number]: Record<string, any> }
2529

2630
export const attachEmitListener = () => {
2731
events = {}

src/vueWrapper.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { TriggerOptions } from './createDomEvent'
1313
import { find, matches } from './utils/find'
1414
import { mergeDeep, textContent } from './utils'
1515
import { emitted } from './emit'
16+
import type { Events } from './emit'
1617

1718
export class VueWrapper<T extends ComponentPublicInstance> {
1819
private componentVM: T
@@ -74,11 +75,13 @@ export class VueWrapper<T extends ComponentPublicInstance> {
7475
return true
7576
}
7677

77-
emitted<T = unknown>(): Record<string, T[]>
78-
emitted<T = unknown>(eventName?: string): undefined | T[]
78+
emitted<T = unknown>(): Events<T>[number]
7979
emitted<T = unknown>(
8080
eventName?: string
81-
): undefined | T[] | Record<string, T[]> {
81+
): undefined | Events<T>[number][string]
82+
emitted<T = unknown>(
83+
eventName?: string
84+
): undefined | Events<T>[number][string] | Events<T>[number] {
8285
return emitted(this.vm, eventName)
8386
}
8487

tests/emit.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ describe('emitted', () => {
9393
name: 'Parent',
9494
setup(props, { emit }) {
9595
return () =>
96-
h(Child, { onHello: (...events: any[]) => emit('parent', ...events) })
96+
h(Child, {
97+
onHello: (...events: unknown[]) => emit('parent', ...events)
98+
})
9799
}
98100
})
99101
const wrapper = mount(Parent)

tests/features/async-components.spec.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import { defineAsyncComponent, defineComponent, h, AppConfig } from 'vue'
2-
32
import { mount, flushPromises } from '../../src'
4-
import { ComponentPublicInstance } from '@vue/runtime-core'
53

64
const config: AppConfig = {
75
optionMergeStrategies: {},

0 commit comments

Comments
 (0)