in src/SignalingClient.ts [74:105]
public constructor(config: SignalingClientConfig) {
super();
// Validate config
validateValueNonNil(config, 'SignalingClientConfig');
validateValueNonNil(config.role, 'role');
if (config.role === Role.VIEWER) {
validateValueNonNil(config.clientId, 'clientId');
} else {
validateValueNil(config.clientId, 'clientId');
}
validateValueNonNil(config.channelARN, 'channelARN');
validateValueNonNil(config.region, 'region');
validateValueNonNil(config.channelEndpoint, 'channelEndpoint');
this.config = { ...config }; // Copy config to new object for immutability.
if (config.requestSigner) {
this.requestSigner = config.requestSigner;
} else {
validateValueNonNil(config.credentials, 'credentials');
this.requestSigner = new SigV4RequestSigner(config.region, config.credentials);
}
this.dateProvider = new DateProvider(config.systemClockOffset || 0);
// Bind event handlers
this.onOpen = this.onOpen.bind(this);
this.onMessage = this.onMessage.bind(this);
this.onError = this.onError.bind(this);
this.onClose = this.onClose.bind(this);
}