@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
41 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPublication = void 0;
const _1 = require(".");
/**@internal */
function createPublication(channel, { publisherId, stream, origin, metadata, codecCapabilities, encodings, contentType, id, isEnabled, type, }) {
const exist = channel._getPublication(id);
if (exist) {
return exist;
}
contentType = contentType.toLowerCase();
const originPublication = origin
? // todo fix originPublicationが不整合を起こすことがある
channel._getPublication(origin)
: undefined;
// リレーされたPublicationのencodingsを設定する
if (originPublication) {
if (encodings.length === 0) {
encodings = originPublication.encodings;
}
}
const publisher = channel._getMember(publisherId);
// typeがnullの場合はv2.0.0よりも前のバージョンにおけるp2pとして解釈する
const publicationType = type !== null && type !== void 0 ? type : 'p2p';
const publication = new _1.PublicationImpl({
id,
channel,
publisher,
contentType,
metadata,
origin: originPublication,
stream,
codecCapabilities: codecCapabilities !== null && codecCapabilities !== void 0 ? codecCapabilities : [],
encodings,
isEnabled,
type: publicationType,
});
return publication;
}
exports.createPublication = createPublication;
//# sourceMappingURL=factory.js.map