File

lib/features/src/transmission/combined/combined-transmission.commons.ts

Index

Properties

Properties

data
data:
signalServer
signalServer: string
Type : string
stunServers
stunServers: string[]
Type : string[]
import	{	InjectionToken				}	from '@angular/core'

import	{	
			isErrorFree,
			assertProperty,
			assert
		}									from '@rcc/core'



export type CmbTransmissionMeta = ["rcc-cmb", string, string] // ["cmb-wrt", channel, key]


export function assertCmbTransmissionMeta( x : unknown): asserts x is CmbTransmissionMeta {

	assert(x instanceof Array,		"assertCmbTransmissionMeta: must be an array.")
	assert(x[0] == 'rcc-cmb',		"isCmbTransmissionMeta: [0] must be 'rcc-rtc.")
	assert(typeof x[1] == 'string',	"isCmbTransmissionMeta: [1] must be string.")
	assert(typeof x[2] == 'string',	"isCmbTransmissionMeta: [2] must be string.")
}


export function isCmbTransmissionMeta( x : unknown): x is CmbTransmissionMeta {

	return isErrorFree( () => assertCmbTransmissionMeta(x))
}



export interface CmbTransmissionConfig {
	data			: unknown,
	signalServer	: string
	stunServers		: string[]
}


export function assertCmbTransmissionConfig(x : unknown): asserts x is CmbTransmissionConfig {


	assertProperty(x, 'data')
	assertProperty(x, 'signalServer')

	assert(typeof x.signalServer == 'string',	"assertCmbTransmissionConfig: url must be a string.")
	assert(x.signalServer.match(/^wss:/),		"assertCmbTransmissionConfig: url must start with 'wss:'.")

}


export function isCmbTransmissionConfig(x : unknown): x is CmbTransmissionConfig {

	return isErrorFree(  () => assertCmbTransmissionConfig(x) )

}



export const CMB_SIGNAL_SERVER 	= new InjectionToken<string>('cmb: url of the websocket server for webrtc ice negotiation')
export const CMB_STUN_SERVERS 	= new InjectionToken<string[]>('cmb: url of the stun servers for webrtc ice negotiation')

results matching ""

    No results matching ""