UNPKG

pxt-core

Version:

Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors

38 lines (37 loc) 1.44 kB
/// <reference path="../../localtypings/pxteditor.d.ts" /> declare type MessageHandler = (response: any) => void; interface PendingMessage { original: pxt.editor.EditorMessageRequest; resolve: MessageHandler; reject: MessageHandler; } /** * Abstract class for driving communication with an embedded iframe */ export declare abstract class IframeDriver { iframe: HTMLIFrameElement; protected readyForMessages: boolean; protected messageQueue: pxt.editor.EditorMessageRequest[]; protected nextId: number; protected pendingMessages: { [index: string]: PendingMessage; }; protected editorEventListeners: { [index: string]: MessageHandler[]; }; protected port: MessagePort; protected portRequestPending: boolean; protected frameId: string; constructor(iframe: HTMLIFrameElement); protected abstract handleMessage(message: MessageEvent): void; dispose(): void; addEventListener(event: string, handler: (ev: any) => void): void; removeEventListener(event: string, handler: (ev: any) => void): void; protected onMessageReceived: (event: MessageEvent) => void; protected resolvePendingMessage(event: MessageEvent): void; protected fireEvent(event: string, data: any): void; protected sendRequest(message: any): Promise<unknown>; protected sendMessageCore(message?: any): void; protected createMessagePort(): void; } export {};