github.com/munnerz/test-infra@v0.0.0-20190108210205-ce3d181dc989/prow/cmd/deck/static/spyglass/common.ts (about) 1 export interface BaseMessage { 2 type: string; 3 } 4 5 function isBaseMessage(data: any): data is BaseMessage { 6 return typeof data.type === 'string'; 7 } 8 9 export interface ContentUpdatedMessage extends BaseMessage{ 10 type: 'contentUpdated'; 11 height: number; 12 } 13 14 export interface RequestMessage extends BaseMessage { 15 type: 'request'; 16 data: string; 17 } 18 19 export interface RequestPageMessage extends BaseMessage { 20 type: 'requestPage'; 21 data: string; 22 } 23 24 export interface UpdatePageMessage extends BaseMessage { 25 type: 'updatePage'; 26 data: string; 27 } 28 29 export interface Response extends BaseMessage { 30 type: 'response'; 31 data: string; 32 } 33 34 export function isResponse(data: any): data is Response { 35 return isBaseMessage(data) && data.type === 'response'; 36 } 37 38 export type Message = ContentUpdatedMessage | RequestMessage | RequestPageMessage | UpdatePageMessage | Response; 39 40 export interface TransitMessage { 41 id: number; 42 message: Message; 43 } 44 45 export function isTransitMessage(data: any): data is TransitMessage { 46 return typeof data.id === 'number' && data.message && typeof data.message.type === 'string'; 47 }