main
js 44 lines 1.19 KB
Raw
1 /** @flow */
2
3 import type {DevToolsHookSettings} from 'react-devtools-shared/src/backend/types';
4 import type {ComponentFilter} from 'react-devtools-shared/src/frontend/types';
5
6 export function postMessage(event: UnknownMessageEventData): void {
7 window.postMessage(event);
8 }
9
10 export interface UnknownMessageEvent
11 extends MessageEvent<UnknownMessageEventData> {}
12
13 export type UnknownMessageEventData =
14 | SettingsInjectorEventData
15 | HookInstallerEventData;
16
17 export type HookInstallerEventData = {
18 source: 'react-devtools-hook-installer',
19 payload: HookInstallerEventPayload,
20 };
21
22 export type HookInstallerEventPayload = HookInstallerEventPayloadHandshake;
23
24 export type HookInstallerEventPayloadHandshake = {
25 handshake: true,
26 };
27
28 export type SettingsInjectorEventData = {
29 source: 'react-devtools-settings-injector',
30 payload: SettingsInjectorEventPayload,
31 };
32
33 export type SettingsInjectorEventPayload =
34 | SettingsInjectorEventPayloadHandshake
35 | SettingsInjectorEventPayloadSettings;
36
37 export type SettingsInjectorEventPayloadHandshake = {
38 handshake: true,
39 };
40
41 export type SettingsInjectorEventPayloadSettings = {
42 hookSettings: DevToolsHookSettings,
43 componentFilters: Array<ComponentFilter>,
44 };