Skip to content

Commit 0ffbedb

Browse files
committed
types: fix multiple type issues
1 parent 2780337 commit 0ffbedb

File tree

4 files changed

+18
-22
lines changed

4 files changed

+18
-22
lines changed

playgrounds/nuxt/app/components/recorder-demo-component.vue

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
<script setup lang="ts">
2-
// import { UseMediaRecorder} from '@orbisk/vue-use-media-recorder' // TODO: why?
3-
4-
// function handleStop() {
5-
// stop()
6-
// const blob = new Blob(data.value)
7-
// const blobVideo = new Blob(data.value)
8-
// audio.value.src = URL.createObjectURL(blob)
9-
// video.value.src = URL.createObjectURL(blobVideo)
10-
// }
2+
const getUrlFromData = (data: BlobPart[], type?: string) => URL.createObjectURL(new Blob(data, {type}))
113
124
const stopped = ref(false)
135
</script>
@@ -28,7 +20,7 @@ const stopped = ref(false)
2820
stop
2921
</button>
3022
<audio controls>
31-
<source v-if="stopped" :src="URL.createObjectURL(new Blob(slotProps.data))">
23+
<source v-if="stopped" :src="getUrlFromData(slotProps.data, slotProps.mimeType)">
3224
</audio>
3325
<pre>state: {{ slotProps.state }}</pre>
3426
<pre>supported: {{ slotProps.isSupported }}</pre>

src/components/UseMediaRecorder.vue

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ const props = defineProps({
55
constraints: {
66
type: Object,
77
required: true,
8-
validator(value: unknown): boolean {
9-
if (!value.audio && !value.video) {
8+
validator(value: any): boolean {
9+
if (!value?.audio && !value?.video) {
1010
console.error('constraints must have at least one of audio or video')
1111
return false
1212
}
13+
return true
1314
},
1415
},
1516
mediaRecorderOptions: {
@@ -26,11 +27,11 @@ const emit = defineEmits<{
2627
error: [ev: Event]
2728
}>()
2829
29-
const onStart = (...args) => emit('start', ...args)
30-
const onStop = (...args) => emit('stop', ...args)
31-
const onPause = (...args) => emit('pause', ...args)
32-
const onResume = (...args) => emit('resume', ...args)
33-
const onError = (...args) => emit('error', ...args)
30+
const onStart = (...args: [Event]) => emit('start', ...args)
31+
const onStop = (...args: [Event]) => emit('stop', ...args)
32+
const onPause = (...args: [Event]) => emit('pause', ...args)
33+
const onResume = (...args: [Event]) => emit('resume', ...args)
34+
const onError = (...args: [Event]) => emit('error', ...args)
3435
3536
const {
3637
data,

tests/components/UseMediaRecorder.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ describe('useMediaRecorder component', () => {
6363
await vi.waitFor(() => {
6464
// check if start emits an event from type Event with trusted true
6565
expect(mediaRecorder.emitted().start).toHaveLength(1)
66-
expect(mediaRecorder.emitted().start[0]).toMatchObject([{ isTrusted: true }])
66+
expect(mediaRecorder.emitted().start?.[0]).toMatchObject([{ isTrusted: true }])
6767
})
6868
await mediaRecorder.vm.stop()
6969
await vi.waitFor(() => {
7070
// check if stop emits an event from type Event with trusted true
7171
expect(mediaRecorder.emitted().stop).toHaveLength(1)
72-
expect(mediaRecorder.emitted().stop[0]).toMatchObject([{ isTrusted: true }])
72+
expect(mediaRecorder.emitted().stop?.[0]).toMatchObject([{ isTrusted: true }])
7373
})
7474
})
7575

@@ -84,13 +84,13 @@ describe('useMediaRecorder component', () => {
8484
await vi.waitFor(() => {
8585
// check if start emits an event from type Event with trusted true
8686
expect(mediaRecorder.emitted().pause).toHaveLength(1)
87-
expect(mediaRecorder.emitted().pause[0]).toMatchObject([{ isTrusted: true }])
87+
expect(mediaRecorder.emitted().pause?.[0]).toMatchObject([{ isTrusted: true }])
8888
})
8989
mediaRecorder.vm.resume()
9090
await vi.waitFor(() => {
9191
// check if start emits an event from type Event with trusted true
9292
expect(mediaRecorder.emitted().resume).toHaveLength(1)
93-
expect(mediaRecorder.emitted().resume[0]).toMatchObject([{ isTrusted: true }])
93+
expect(mediaRecorder.emitted().resume?.[0]).toMatchObject([{ isTrusted: true }])
9494
})
9595
})
9696

tsconfig.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,8 @@
55
"@vitest/browser/providers/webdriverio",
66
"@vitest/browser/providers/playwright"
77
]
8-
}
8+
},
9+
"exclude": [
10+
"dist"
11+
]
912
}

0 commit comments

Comments
 (0)