UNPKG

@kkbox/kkbox-javascript-developer-sdk

Version:

KKBOX Open API developer SDK for JavaScript. Use it to easily access KKBOX open API to get various metadata about KKBOX's tracks, albums, artists, playlists and stations.

1 lines 4.29 kB
'use strict';var _createClass=function(){function a(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,'value'in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),_Endpoint=require('../Endpoint'),_Fetcher2=require('./Fetcher'),_Fetcher3=_interopRequireDefault(_Fetcher2);Object.defineProperty(exports,'__esModule',{value:!0});function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _toConsumableArray(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b<a.length;b++)c[b]=a[b];return c}return Array.from(a)}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError('Cannot call a class as a function')}function _possibleConstructorReturn(a,b){if(!a)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return b&&('object'==typeof b||'function'==typeof b)?b:a}function _inherits(a,b){if('function'!=typeof b&&null!==b)throw new TypeError('Super expression must either be null or a function, not '+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var SearchFetcher=function(a){function b(a){var c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'TW';_classCallCheck(this,b);var d=_possibleConstructorReturn(this,(b.__proto__||Object.getPrototypeOf(b)).call(this,a,c));return d.filterConditions=void 0,d.q=void 0,d.type=void 0,d}return _inherits(b,a),_createClass(b,[{key:'filter',value:function filter(){var a,b,c,d,e,f,g=0<arguments.length&&void 0!==arguments[0]?arguments[0]:(a={},b=a.track,track=void 0==b?void 0:b,c=a.album,album=void 0==c?void 0:c,d=a.artist,artist=void 0==d?void 0:d,e=a.playlist,playlist=void 0==e?void 0:e,f=a.available_territory,available_territory=void 0==f?void 0:f,a);return this.filterConditions=g,this}},{key:'setSearchCriteria',value:function setSearchCriteria(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:void 0;return this.q=a,this.type=b,this}},{key:'fetchSearchResult',value:function fetchSearchResult(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:void 0,b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:void 0;return this.http.get(_Endpoint.SEARCH,{q:this.q,type:this.type,territory:this.territory,limit:a,offset:b}).then(doFilter.bind(this))}}]),b}(_Fetcher3.default);exports.default=SearchFetcher;function doFilter(a){var b=this;if(this.filterConditions!==void 0){var c=Object.keys(a.data).map(function(c){return'tracks'===c?_defineProperty({},c,Object.assign(a.data[c],{data:a.data[c].data.filter(function(a){return(void 0===b.filterConditions.available_territory||a.available_territories.includes(b.filterConditions.available_territory))&&(void 0===b.filterConditions.track||new RegExp('.*'+b.filterConditions.track+'.*').test(a.name))&&(void 0===b.filterConditions.album||new RegExp('.*'+b.filterConditions.album+'.*').test(a.album.name))&&(void 0===b.filterConditions.artist||new RegExp('.*'+b.filterConditions.artist+'.*').test(a.album.artist.name))})})):'albums'===c?_defineProperty({},c,Object.assign(a.data[c],{data:a.data[c].data.filter(function(a){return(void 0===b.filterConditions.available_territory||a.available_territories.includes(b.filterConditions.available_territory))&&(void 0===b.filterConditions.album||new RegExp('.*'+b.filterConditions.album+'.*').test(a.name))&&(void 0===b.filterConditions.artist||new RegExp('.*'+b.filterConditions.artist+'.*').test(a.artist.name))})})):'artists'===c?_defineProperty({},c,Object.assign(a.data[c],{data:a.data[c].data.filter(function(a){return void 0===b.filterConditions.artist||new RegExp('.*'+b.filterConditions.artist+'.*').test(a.name)})})):'playlists'===c?_defineProperty({},c,Object.assign(a.data[c],{data:a.data[c].data.filter(function(a){return void 0===b.filterConditions.playlist||new RegExp('.*'+b.filterConditions.playlist+'.*').test(a.title)})})):_defineProperty({},c,a.data[c])});return Object.assign(a,{data:Object.assign.apply(Object,_toConsumableArray(c))})}return a}