Home Reference Source

src/datapipe/DataPipeFactory.js

import {WacDataPipe} from './WacDataPipe';
import {DataChannelDataPipe} from './DataChannelDataPipe';

/**
 * DataPipe factory
 */
export class DataPipeFactory {

	/**
	 * Create a {DataPipe} instance with given parameters.
	 *
	 * @throws {TypeError} invalid participants.
	 *
	 * @param {String} id pipe identifier. Optional. Default is a random value.
	 * @param {DataPipe.TYPE} type pipe type.
	 * @param {WacStack} stack stack instance.
	 * @param {Array<String>} participants pipe participants.
	 * @param {String} label pipe label. Optional. Default is 'generic'
	 */
	static create(id, type, stack, participants, label) {
		if (stack.getCapabilities().includes('datapipe')) {
			return new WacDataPipe(id, type, stack, participants, label);
		} else {
			return new DataChannelDataPipe(id, type, stack, participants, label);
		}
	}
}