diff --git a/packages/streamwall/src/main/data.ts b/packages/streamwall/src/main/data.ts index 567a9cb..e8b359c 100644 --- a/packages/streamwall/src/main/data.ts +++ b/packages/streamwall/src/main/data.ts @@ -91,11 +91,11 @@ export async function* combineDataSources( } interface LocalStreamDataEvents { - update: [StreamDataContent[]] + update: [Partial[]] } export class LocalStreamData extends EventEmitter { - dataByURL: Map + dataByURL: Map> constructor(entries: StreamDataContent[] = []) { super() @@ -110,8 +110,11 @@ export class LocalStreamData extends EventEmitter { update(url: string, data: Partial) { const existing = this.dataByURL.get(url) - const kind = data.kind ?? existing?.kind ?? 'video' - const updated: StreamDataContent = { ...existing, ...data, kind, link: url } + const updated: Partial = { + ...existing, + ...data, + link: url, + } this.dataByURL.set(data.link ?? url, updated) if (data.link != null && url !== data.link) { this.dataByURL.delete(url) @@ -128,7 +131,7 @@ export class LocalStreamData extends EventEmitter { this.emit('update', [...this.dataByURL.values()]) } - gen(): AsyncGenerator { + gen(): AsyncGenerator[]> { return new Repeater(async (push, stop) => { await push([...this.dataByURL.values()]) this.on('update', push)