peercast-yp-proxy-client
Version:
Client for peercast-yp-proxy.
119 lines (104 loc) • 5.61 kB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 8);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
;
Object.defineProperty(exports,"__esModule",{value:!0});try{__webpack_require__(7).install()}catch(a){}const Client_1=__webpack_require__(2);exports.Client=Client_1.default;
/***/ }),
/* 1 */,
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
;
Object.defineProperty(exports,"__esModule",{value:!0});const rxjs_1=__webpack_require__(5),socketIo=__webpack_require__(6),channelutils_1=__webpack_require__(3);class Client{constructor(){this.channels=[],this.socket=socketIo("https://peercast-yp-proxy.now.sh"),this.error=new rxjs_1.Observable((b)=>{rxjs_1.Observable.fromEvent(this.socket,"connect_error").subscribe(b),rxjs_1.Observable.fromEvent(this.socket,"error").subscribe(b),rxjs_1.Observable.fromEvent(this.socket,"reconnect_error").subscribe(b)});const a=rxjs_1.Observable.fromEvent(this.socket,"message").filter((b)=>"broadcast"===b.type).map((b)=>b.payload).publish();this.channelsUpdated=a.filter((b)=>"channels"===b.type).map((b)=>b.payload),this.differencesReceived=a.filter((b)=>"differences"===b.type).map((b)=>b.payload),this.channelsUpdated.subscribe((b)=>{this.channels=b},(b)=>console.error(b.stack||b)),this.differencesReceived.subscribe((b)=>{this.channels=merge(this.channels,b)},(b)=>console.error(b.stack||b)),a.connect()}close(){this.socket.close()}getChannels(){return this.channels.concat()}}exports.default=Client;function merge(a,b){var c=!0,d=!1,f=void 0;try{for(var h,g=b[Symbol.iterator]();!(c=(h=g.next()).done);c=!0){const i=h.value;switch(i.type){case"set":a=a.filter((j)=>j.id!==i.channel.id).concat([i.channel]);break;case"delete":a=a.filter((j)=>!channelutils_1.deepEqualOrCreatedAtNearTime(j,i.channel));break;default:throw new Error(`Invalid type: ${i.type}`);}}}catch(i){d=!0,f=i}finally{try{!c&&g.return&&g.return()}finally{if(d)throw f}}return a}
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
;
Object.defineProperty(exports,"__esModule",{value:!0});function deepEqualOrCreatedAtNearTime(c,d){return c.name!==d.name||c.id!==d.id||c.ip!==d.ip||c.url!==d.url||c.genre!==d.genre||c.desc!==d.desc||c.bandwidthType!==d.bandwidthType||c.listeners!==d.listeners||c.relays!==d.relays||c.bitrate!==d.bitrate||c.type!==d.type||c.track.creator!==d.track.creator||c.track.album!==d.track.album||c.track.title!==d.track.title||c.track.url!==d.track.url||c.comment!==d.comment||c.direct!==d.direct?!1:!(120000<Math.abs(c.createdAt-d.createdAt))}exports.deepEqualOrCreatedAtNearTime=deepEqualOrCreatedAtNearTime;
/***/ }),
/* 4 */,
/* 5 */
/***/ (function(module, exports) {
module.exports = require("rxjs");
/***/ }),
/* 6 */
/***/ (function(module, exports) {
module.exports = require("socket.io-client");
/***/ }),
/* 7 */
/***/ (function(module, exports) {
module.exports = require("source-map-support");
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(0);
/***/ })
/******/ ]);