File size: 952 Bytes
671591e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import type { MorrisTelepresenceConfig } from './types';
import { createBrowserReachy } from './browser';
import { browserMicFactory } from './local-mic';
import {
  createSecureLeaseId,
  defaultControllerDependencies,
  MorrisTelepresenceController,
} from './MorrisTelepresenceController';
import { PreviewReachy, previewMicFactory } from './preview';

/** Selects an entirely local fake before any SDK object is constructed. */
export function createRuntimeController(
  config: MorrisTelepresenceConfig,
): MorrisTelepresenceController {
  if (config.mode === 'preview') {
    return new MorrisTelepresenceController(
      config,
      defaultControllerDependencies(
        () => new PreviewReachy(),
        previewMicFactory,
        () => 'preview-morris-lease',
      ),
    );
  }
  return new MorrisTelepresenceController(
    config,
    defaultControllerDependencies(createBrowserReachy, browserMicFactory, createSecureLeaseId),
  );
}