UNPKG

@skyway-sdk/core

Version:

The official Next Generation JavaScript SDK for SkyWay

71 lines 3.46 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLocalPerson = void 0; const common_1 = require("@skyway-sdk/common"); const const_1 = require("../../const"); const errors_1 = require("../../errors"); const ice_1 = require("../../external/ice"); const signaling_1 = require("../../external/signaling"); const util_1 = require("../../util"); const _1 = require("."); const log = new common_1.Logger('packages/core/src/member/person/local/factory.ts'); /**@internal */ function createLocalPerson(context, channel, memberDto, { keepaliveIntervalSec, keepaliveIntervalGapSec, preventAutoLeaveOnBeforeUnload, disableSignaling, } = {}) { var _a; return __awaiter(this, void 0, void 0, function* () { log.debug('createLocalPerson', { channel, memberDto, keepaliveIntervalSec, keepaliveIntervalGapSec, preventAutoLeaveOnBeforeUnload, }); const { iceParamServer } = context.config; const signalingSession = disableSignaling === true ? undefined : yield (0, signaling_1.setupSignalingSession)(context, channel, memberDto); const iceManager = new ice_1.IceManager(Object.assign(Object.assign({}, iceParamServer), { memberId: memberDto.id, channelId: channel.id, ttl: const_1.MaxIceParamServerTTL, context })); yield iceManager.updateIceParams().catch((err) => { throw (0, util_1.createError)({ operationName: 'createLocalPerson', context, channel, info: Object.assign(Object.assign({}, errors_1.errors.internal), { detail: 'updateIceParams failed' }), path: log.prefix, error: err, }); }); const person = yield _1.LocalPersonImpl.Create({ iceManager, channel, signaling: signalingSession, analytics: context.analyticsSession, metadata: memberDto.metadata, name: memberDto.name, id: memberDto.id, keepaliveIntervalSec, keepaliveIntervalGapSec, preventAutoLeaveOnBeforeUnload, context, }); for (const plugin of context.plugins) { yield ((_a = plugin._whenCreateLocalPerson) === null || _a === void 0 ? void 0 : _a.call(plugin, person)); person._onDisposed.once(() => __awaiter(this, void 0, void 0, function* () { var _b; yield ((_b = plugin._whenDisposeLocalPerson) === null || _b === void 0 ? void 0 : _b.call(plugin, person)); })); } return person; }); } exports.createLocalPerson = createLocalPerson; //# sourceMappingURL=factory.js.map