refactor(iframe): [PKG-IFRAME-03] scope requests to active documents

This commit is contained in:
Harvey Zhao committed 2026-09-13 01:07:37 +08:00
1 parent b8cdafedd1
commit 1342de94ef
27 files changed
+10860 -69

No files matched your search

@@ -1,5 +1,27 @@
import type { Packet } from './requests'
export const sessionType = 'artplayer-tool-iframe:session'
export type SessionPhase = 'inject' | 'message' | 'ack' | 'leave' | 'resume' | 'fragment'
export interface SessionMetadata {
version: 1
document: string
phase: SessionPhase
}
interface SessionPacket extends Packet {
__artplayerIframe: SessionMetadata
}
export function sessionMetadata(packet: Packet): SessionMetadata | undefined {
const value = (packet as Partial<SessionPacket>).__artplayerIframe
if (value?.version === 1 && typeof value.document === 'string' && value.document && ['inject', 'message', 'ack', 'leave', 'resume', 'fragment'].includes(value.phase))
return value
}
export function withSession(packet: Packet, documentId: string, phase: SessionPhase): SessionPacket {
return { ...packet, __artplayerIframe: { version: 1, document: documentId, phase } }
}
export function acceptsMessage(event: MessageEvent<unknown>, peer: Window | null): event is MessageEvent<Packet> {
if (event.source !== undefined && event.source !== null && event.source !== peer)
return false