All files / client/src/lib server-capabilities.ts

100% Statements 3/3
100% Branches 2/2
100% Functions 1/1
100% Lines 3/3

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 24 25 26 27 28 29 30 31 32 33 34                  16x                 16x                         199x    
export interface ServerCapabilities {
  readonly canCompile: boolean;
  readonly canSimulate: boolean;
  readonly canUseTutor: boolean;
  readonly canConfigureTutor: boolean;
  readonly canUseServerExamples: boolean;
  readonly canUseRealtimeControls: boolean;
}
 
const AVAILABLE_CAPABILITIES: ServerCapabilities = Object.freeze({
  canCompile: true,
  canSimulate: true,
  canUseTutor: true,
  canConfigureTutor: true,
  canUseServerExamples: true,
  canUseRealtimeControls: true,
});
 
const OFFLINE_CAPABILITIES: ServerCapabilities = Object.freeze({
  canCompile: false,
  canSimulate: false,
  canUseTutor: false,
  canConfigureTutor: false,
  canUseServerExamples: false,
  canUseRealtimeControls: false,
});
 
/** Derives every server-dependent UI capability from backendReachable. */
export function getServerCapabilities(
  backendReachable: boolean,
): ServerCapabilities {
  return backendReachable ? AVAILABLE_CAPABILITIES : OFFLINE_CAPABILITIES;
}