All files / kernel-browser-runtime/src/internal-comms comms-control-message.ts

100% Statements 4/4
100% Branches 0/0
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23        4x           4x                 4x 15x    
import type { TypeGuard } from '@metamask/kernel-utils';
import { object, literal, is, string } from '@metamask/superstruct';
import type { Infer } from '@metamask/superstruct';
 
export const CommsControlMethod = {
  init: 'init',
} as const;
 
export type CommsControlMethod = keyof typeof CommsControlMethod;
 
const CommsControlMessageStruct = object({
  method: literal(CommsControlMethod.init),
  params: object({
    channelName: string(),
  }),
});
 
export type CommsControlMessage = Infer<typeof CommsControlMessageStruct>;
 
export const isCommsControlMessage: TypeGuard<CommsControlMessage> = (
  value: unknown,
): value is CommsControlMessage => is(value, CommsControlMessageStruct);