@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
54 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.objectFlag = exports.LocalDataStream = void 0;
const common_1 = require("@skyway-sdk/common");
const errors_1 = require("../../../errors");
const util_1 = require("../../../util");
const _1 = require(".");
const log = new common_1.Logger('packages/core/src/media/stream/local/data.ts');
class LocalDataStream extends _1.LocalStreamBase {
constructor(options = {}) {
super('data');
this.options = options;
this.contentType = 'data';
/**@private */
this._onWriteData = new common_1.Event();
this._isEnabled = true;
/**
* @description [japanese] データストリームが書き込み可能な状態になったことを通知するイベント
* イベントデータとして、書き込み可能になったデータストリームのSubscriberの情報が通知される。
*/
this.onWritable = new common_1.Event();
/**
* @description [japanese] データストリームが書き込み不可能な状態になったことを通知するイベント。
* イベントデータとして、書き込み不可能になったデータストリームのSubscriberの情報が通知される。
*/
this.onUnwritable = new common_1.Event();
this._setLabel('LocalDataStream');
}
/**@internal */
setIsEnabled(b) {
this._isEnabled = b;
}
/**@description [japanese] データを送信する */
write(data) {
if (!this._isEnabled) {
throw (0, util_1.createError)({
operationName: 'LocalDataStream.write',
path: log.prefix,
info: errors_1.errors.disabledDataStream,
});
}
const isObject = !ArrayBuffer.isView(data) &&
!(data instanceof ArrayBuffer) &&
!(typeof data === 'string');
if (isObject) {
data = exports.objectFlag + JSON.stringify(data);
}
this._onWriteData.emit(data);
}
}
exports.LocalDataStream = LocalDataStream;
/**@internal */
exports.objectFlag = 'skyway_object:';
//# sourceMappingURL=data.js.map