UNPKG

peercast-yp-proxy-client

Version:
119 lines (104 loc) 5.61 kB
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__) { "use strict"; 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__) { "use strict"; 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__) { "use strict"; 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); /***/ }) /******/ ]);