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  }