File

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

Index

Properties

Properties

data
data:
url
url: string
Type : string
import	{	InjectionToken		}	from '@angular/core'
import	{
			isErrorFree,
			assertProperty,
			assert
		}							from '@rcc/core'


export type WsTransmissionMeta = ["rcc-wst", string, string] // ["rcc-wst", channel, key]

export function isWsTransmissionMeta(x:unknown, throw_errors = true): x is WsTransmissionMeta {

	if(!throw_errors) return isErrorFree( () => isWsTransmissionMeta(x, true))

	if(! (x instanceof Array)) 	throw new Error("isWstMeta: must be an array.")
	if(x[0] != 'rcc-wst')		throw new Error("isWstMeta: [0] must be 'rcc-wst.")
	if(typeof x[1] != 'string')	throw new Error("isWstMeta: [1] must be string.")
	if(typeof x[2] != 'string') throw new Error("isWstMeta: [2] must be string.")
	
	return true
}



export interface WsTransmissionConfig {
	data	:	unknown,
	url		:	string
}

export function isWsTransmissionConfig(x:unknown, throw_errors = false): x is WsTransmissionConfig {

	if(!throw_errors) return isErrorFree( () => isWsTransmissionConfig(x, true))
	

	assertProperty(x, 'url', 			"isWsTransmissionConfig: missing url.")

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

	assertProperty(x, 'data',			"isWsTransmissionConfig: missing data.")
}




export const WEBSOCKET_DEFAULT_URL = new InjectionToken<string>('url of the websocket server')

results matching ""

    No results matching ""