dota2-json-api
Version:
DotA 2 Web API JS wrapper, an extension from github/kronusme/dota2-api
91 lines (61 loc) • 2.44 kB
JavaScript
;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _mods = require('./data/mods.json');
var _mods2 = _interopRequireDefault(_mods);
var _items = require('./data/items.json');
var _items2 = _interopRequireDefault(_items);
var _heroes = require('./data/heroes.json');
var _heroes2 = _interopRequireDefault(_heroes);
var _lobbies = require('./data/lobbies.json');
var _lobbies2 = _interopRequireDefault(_lobbies);
var _regions = require('./data/regions.json');
var _regions2 = _interopRequireDefault(_regions);
var _abilities = require('./data/abilities.json');
var _abilities2 = _interopRequireDefault(_abilities);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var dota = {
mods: _mods2.default.mods,
items: _items2.default.items,
heroes: _heroes2.default.heroes,
lobbies: _lobbies2.default.lobbies,
regions: _regions2.default.regions,
abilities: _abilities2.default.abilities
};
var isKeyInvalid = function isKeyInvalid(key) {
if (!(key in dota) || key === undefined) {
throw "must be either " + Object.keys(dota).join('/');
}
};
var random = function random(key, times) {
isKeyInvalid(key);
if (times === undefined) {
return getRandomItem(key);
} else {
if (typeof times !== 'number') throw new TypeError('Times is not a number : ' + times + " is " + (typeof times === 'undefined' ? 'undefined' : _typeof(times)));
var rand = [];
for (var i = 0; i < times; i++) {
rand.push(getRandomItem(key));
}
return rand;
}
function getRandomItem(key) {
return dota[key][Math.floor(Math.random() * dota[key].length)];
}
};
var search = function search(key, searchItem) {
isKeyInvalid(key);
if (searchItem === undefined) throw 'Search keyword is undefined';
return dota[key].filter(function (item) {
return item.name === searchItem;
});
};
module.exports = {
mods: _mods2.default,
items: _items2.default,
heroes: _heroes2.default,
lobbies: _lobbies2.default,
regions: _regions2.default,
abilities: _abilities2.default,
random: random,
search: search
};