hive-bedrock-api 0.0.8-beta.1 → 0.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/format/gameFormat.d.ts +29 -0
- package/lib/format/gameFormat.js +119 -0
- package/lib/index.d.ts +7 -4
- package/lib/index.js +13 -27
- package/lib/methods/calculateLevel.d.ts +2 -0
- package/lib/methods/calculateLevel.js +45 -0
- package/lib/methods/fetchData.d.ts +14 -0
- package/lib/{misc → methods}/fetchData.js +29 -31
- package/lib/methods/getAllTimeLeaderboard.d.ts +4 -0
- package/lib/{stats/getAllTimeStats.js → methods/getAllTimeLeaderboard.js} +43 -6
- package/lib/methods/getAllTimeStats.d.ts +12 -0
- package/lib/methods/getAllTimeStats.js +182 -0
- package/lib/methods/getGlobalStatistics.d.ts +3 -0
- package/lib/{getStats.js → methods/getGlobalStatistics.js} +35 -25
- package/lib/methods/getMonthlyLeaderboard.d.ts +10 -0
- package/lib/methods/getMonthlyLeaderboard.js +110 -0
- package/lib/methods/getMonthlyStats.d.ts +12 -0
- package/lib/methods/getMonthlyStats.js +169 -0
- package/lib/types/API.d.ts +163 -0
- package/lib/types/API.js +3 -0
- package/lib/types/ENDPOINTS.d.ts +9 -0
- package/lib/types/ENDPOINTS.js +2 -0
- package/lib/types/GAMES.d.ts +63 -0
- package/lib/types/GAMES.js +3 -0
- package/lib/types/GAME_INFO.d.ts +24 -0
- package/lib/types/GAME_INFO.js +92 -0
- package/lib/types/METHODS.d.ts +8 -0
- package/lib/types/METHODS.js +2 -0
- package/package.json +6 -6
- package/lib/config.d.ts +0 -7
- package/lib/config.js +0 -6
- package/lib/getStats.d.ts +0 -2
- package/lib/misc/Response.d.ts +0 -22
- package/lib/misc/Response.js +0 -27
- package/lib/misc/ResponseData.d.ts +0 -50
- package/lib/misc/ResponseData.js +0 -136
- package/lib/misc/XP.d.ts +0 -20
- package/lib/misc/XP.js +0 -86
- package/lib/misc/fetchData.d.ts +0 -4
- package/lib/misc/getGame.d.ts +0 -11
- package/lib/misc/getGame.js +0 -123
- package/lib/stats/getAllTimeStats.d.ts +0 -2
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { GAME } from "../types/GAME_INFO";
|
|
2
|
+
interface SingleGameFormat {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}
|
|
5
|
+
interface GameFormat {
|
|
6
|
+
[key: string]: SingleGameFormat | null;
|
|
7
|
+
}
|
|
8
|
+
export declare const formats: {
|
|
9
|
+
main: (player: SingleGameFormat) => SingleGameFormat;
|
|
10
|
+
default: (gameType: GAME, game: SingleGameFormat) => {
|
|
11
|
+
id: GAME;
|
|
12
|
+
} | null;
|
|
13
|
+
drop: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
14
|
+
party: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
15
|
+
ctf: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
16
|
+
dr: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
17
|
+
ground: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
18
|
+
hide: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
19
|
+
build: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
20
|
+
murder: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
21
|
+
sky: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
22
|
+
sg: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
23
|
+
wars: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
24
|
+
bridge: (game: SingleGameFormat | null) => SingleGameFormat | null;
|
|
25
|
+
};
|
|
26
|
+
export declare function gameFormatArray(gameType: GAME, games: SingleGameFormat[]): (SingleGameFormat | null)[];
|
|
27
|
+
export default function gameFormat(games: GameFormat, returnAsSingle: true): SingleGameFormat | null;
|
|
28
|
+
export default function gameFormat(games: GameFormat): GameFormat | null;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
var _a;
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.gameFormatArray = exports.formats = void 0;
|
|
35
|
+
var calculateLevel_1 = __importDefault(require("../methods/calculateLevel"));
|
|
36
|
+
var GAME_INFO_1 = require("../types/GAME_INFO");
|
|
37
|
+
exports.formats = (_a = {
|
|
38
|
+
main: function (player) {
|
|
39
|
+
if ("first_played" in player)
|
|
40
|
+
player.first_played = new Date(player.first_played * 1000);
|
|
41
|
+
return player;
|
|
42
|
+
},
|
|
43
|
+
default: function (gameType, game) {
|
|
44
|
+
if ("index" in game && game.index == 2147483646)
|
|
45
|
+
return null;
|
|
46
|
+
if ("xp" in game) {
|
|
47
|
+
game.level = (0, calculateLevel_1.default)(game.xp, GAME_INFO_1.GAME.CaptureTheFlag);
|
|
48
|
+
}
|
|
49
|
+
else
|
|
50
|
+
return null;
|
|
51
|
+
if ("first_played" in game)
|
|
52
|
+
game.first_played = new Date(game.first_played * 1000);
|
|
53
|
+
if ("played" in game && "victories" in game)
|
|
54
|
+
game.losses = game.played - game.victories;
|
|
55
|
+
if ("kills" in game && "deaths" in game)
|
|
56
|
+
game.kdr = parseFloat((game.kills / game.deaths).toFixed(2));
|
|
57
|
+
return __assign({ id: gameType }, game);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
_a[GAME_INFO_1.GAME.BlockDrop] = function (game) {
|
|
61
|
+
return game;
|
|
62
|
+
},
|
|
63
|
+
_a[GAME_INFO_1.GAME.BlockParty] = function (game) {
|
|
64
|
+
return game;
|
|
65
|
+
},
|
|
66
|
+
_a[GAME_INFO_1.GAME.CaptureTheFlag] = function (game) {
|
|
67
|
+
return game;
|
|
68
|
+
},
|
|
69
|
+
_a[GAME_INFO_1.GAME.DeathRun] = function (game) {
|
|
70
|
+
return game;
|
|
71
|
+
},
|
|
72
|
+
_a[GAME_INFO_1.GAME.GroundWars] = function (game) {
|
|
73
|
+
return game;
|
|
74
|
+
},
|
|
75
|
+
_a[GAME_INFO_1.GAME.HideAndSeek] = function (game) {
|
|
76
|
+
return game;
|
|
77
|
+
},
|
|
78
|
+
_a[GAME_INFO_1.GAME.JustBuild] = function (game) {
|
|
79
|
+
return game;
|
|
80
|
+
},
|
|
81
|
+
_a[GAME_INFO_1.GAME.MurderMystery] = function (game) {
|
|
82
|
+
return game;
|
|
83
|
+
},
|
|
84
|
+
_a[GAME_INFO_1.GAME.Skywars] = function (game) {
|
|
85
|
+
return game;
|
|
86
|
+
},
|
|
87
|
+
_a[GAME_INFO_1.GAME.SurvivalGames] = function (game) {
|
|
88
|
+
return game;
|
|
89
|
+
},
|
|
90
|
+
_a[GAME_INFO_1.GAME.TreasureWars] = function (game) {
|
|
91
|
+
return game;
|
|
92
|
+
},
|
|
93
|
+
_a[GAME_INFO_1.GAME.TheBridge] = function (game) {
|
|
94
|
+
return game;
|
|
95
|
+
},
|
|
96
|
+
_a);
|
|
97
|
+
function gameFormatArray(gameType, games) {
|
|
98
|
+
return games.map(function (game) {
|
|
99
|
+
var _a;
|
|
100
|
+
return gameFormat((_a = {},
|
|
101
|
+
_a[gameType] = game,
|
|
102
|
+
_a), true);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
exports.gameFormatArray = gameFormatArray;
|
|
106
|
+
function gameFormat(games, returnAsSingle) {
|
|
107
|
+
var formatted = Object.fromEntries(Object.entries(games).map(function (_a) {
|
|
108
|
+
var _b = __read(_a, 2), key = _b[0], data = _b[1];
|
|
109
|
+
if (!data)
|
|
110
|
+
return [key, null];
|
|
111
|
+
var defaultFormat = exports.formats.default(key, data);
|
|
112
|
+
if (!defaultFormat)
|
|
113
|
+
return [key, null];
|
|
114
|
+
var gameFormat = exports.formats[key](defaultFormat);
|
|
115
|
+
return [key, gameFormat];
|
|
116
|
+
}));
|
|
117
|
+
return returnAsSingle ? Object.values(formatted)[0] : formatted;
|
|
118
|
+
}
|
|
119
|
+
exports.default = gameFormat;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
1
|
+
import getMonthlyStats from "./methods/getMonthlyStats";
|
|
2
|
+
import getMonthlyLeaderboard from "./methods/getMonthlyLeaderboard";
|
|
3
|
+
import getAllTimeStats from "./methods/getAllTimeStats";
|
|
4
|
+
import getAllTimeLeaderboard from "./methods/getAllTimeLeaderboard";
|
|
5
|
+
import getGlobalStatistics from "./methods/getGlobalStatistics";
|
|
6
|
+
import { GAME as GAMES } from "./types/GAME_INFO";
|
|
7
|
+
export { getAllTimeStats, getAllTimeLeaderboard, getMonthlyStats, getMonthlyLeaderboard, getGlobalStatistics, GAMES, };
|
package/lib/index.js
CHANGED
|
@@ -1,32 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
4
|
};
|
|
24
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.
|
|
26
|
-
var
|
|
27
|
-
exports.
|
|
28
|
-
var
|
|
29
|
-
exports.
|
|
30
|
-
var
|
|
31
|
-
exports.
|
|
32
|
-
|
|
6
|
+
exports.GAMES = exports.getGlobalStatistics = exports.getMonthlyLeaderboard = exports.getMonthlyStats = exports.getAllTimeLeaderboard = exports.getAllTimeStats = void 0;
|
|
7
|
+
var getMonthlyStats_1 = __importDefault(require("./methods/getMonthlyStats"));
|
|
8
|
+
exports.getMonthlyStats = getMonthlyStats_1.default;
|
|
9
|
+
var getMonthlyLeaderboard_1 = __importDefault(require("./methods/getMonthlyLeaderboard"));
|
|
10
|
+
exports.getMonthlyLeaderboard = getMonthlyLeaderboard_1.default;
|
|
11
|
+
var getAllTimeStats_1 = __importDefault(require("./methods/getAllTimeStats"));
|
|
12
|
+
exports.getAllTimeStats = getAllTimeStats_1.default;
|
|
13
|
+
var getAllTimeLeaderboard_1 = __importDefault(require("./methods/getAllTimeLeaderboard"));
|
|
14
|
+
exports.getAllTimeLeaderboard = getAllTimeLeaderboard_1.default;
|
|
15
|
+
var getGlobalStatistics_1 = __importDefault(require("./methods/getGlobalStatistics"));
|
|
16
|
+
exports.getGlobalStatistics = getGlobalStatistics_1.default;
|
|
17
|
+
var GAME_INFO_1 = require("./types/GAME_INFO");
|
|
18
|
+
Object.defineProperty(exports, "GAMES", { enumerable: true, get: function () { return GAME_INFO_1.GAME; } });
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var GAME_INFO_1 = require("../types/GAME_INFO");
|
|
4
|
+
function calculateLevel(xp, game) {
|
|
5
|
+
if (game === GAME_INFO_1.GAME.TheBridge) {
|
|
6
|
+
var lastXp = 0;
|
|
7
|
+
var currentXp = 300;
|
|
8
|
+
var increment = 300;
|
|
9
|
+
var additionalIncrement = 300;
|
|
10
|
+
var i = 2;
|
|
11
|
+
while (true) {
|
|
12
|
+
if (xp === currentXp)
|
|
13
|
+
return i;
|
|
14
|
+
else if (xp < currentXp)
|
|
15
|
+
return i + (xp - lastXp) / (currentXp - lastXp) - 1;
|
|
16
|
+
additionalIncrement = Math.floor(additionalIncrement * 1.08);
|
|
17
|
+
increment += additionalIncrement;
|
|
18
|
+
lastXp = currentXp;
|
|
19
|
+
currentXp += increment;
|
|
20
|
+
i++;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
var gameInfo = GAME_INFO_1.GAME_INFO[game];
|
|
24
|
+
var INCREMENT = gameInfo.increment / 2;
|
|
25
|
+
var INCREMENT_CAP = gameInfo.incrementCap;
|
|
26
|
+
var level = (INCREMENT + Math.sqrt(INCREMENT * (INCREMENT + 4 * xp))) /
|
|
27
|
+
(2 * INCREMENT);
|
|
28
|
+
if (!INCREMENT_CAP || level <= INCREMENT_CAP)
|
|
29
|
+
return boundLevel(level, gameInfo.maxLevel);
|
|
30
|
+
level =
|
|
31
|
+
INCREMENT_CAP +
|
|
32
|
+
(xp -
|
|
33
|
+
(INCREMENT * Math.pow(INCREMENT_CAP - 1, 2) +
|
|
34
|
+
(INCREMENT_CAP - 1) * INCREMENT)) /
|
|
35
|
+
((INCREMENT_CAP - 1) * INCREMENT * 2);
|
|
36
|
+
return boundLevel(level, gameInfo.maxLevel);
|
|
37
|
+
}
|
|
38
|
+
exports.default = calculateLevel;
|
|
39
|
+
function boundLevel(level, maxLevel) {
|
|
40
|
+
if (level < 0)
|
|
41
|
+
return 0;
|
|
42
|
+
if (level > maxLevel)
|
|
43
|
+
return maxLevel;
|
|
44
|
+
return parseFloat(level.toFixed(2));
|
|
45
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { API_BASE_GAME_ALL, API_BASE_GAME_MONTHLY, API_GAME_STATS, API_GLOBAL_STATISTICS, API_REQUEST_ALL, API_REQUEST_LB } from "../types/API";
|
|
2
|
+
import { GAME_LB_ALLTIME_ENDPOINT, GAME_LB_MONTHLY_ENDPOINT, GAME_LB_SPECIFIC_MONTHLY_ENDPOINT, GLOBAL_STATISTICS_ENDPOINT, PLAYER_ALLTIME_ENDPOINT, PLAYER_LB_SPECIFIC_MONTHLY_ENDPOINT, PLAYER_MONTHLY_ENDPOINT } from "../types/ENDPOINTS";
|
|
3
|
+
import { GAME } from "../types/GAME_INFO";
|
|
4
|
+
import { MethodResponse } from "../types/METHODS";
|
|
5
|
+
export declare const API_ROOT = "https://api.playhive.com/v0";
|
|
6
|
+
export default function fetchData(endpoint: PLAYER_ALLTIME_ENDPOINT<"all", string>): Promise<MethodResponse<API_REQUEST_ALL>>;
|
|
7
|
+
export default function fetchData<G extends GAME>(endpoint: PLAYER_ALLTIME_ENDPOINT<G, string>): Promise<MethodResponse<API_GAME_STATS<API_BASE_GAME_ALL>[G]>>;
|
|
8
|
+
export default function fetchData(endpoint: PLAYER_MONTHLY_ENDPOINT<"all", string>): Promise<MethodResponse<API_GAME_STATS<API_BASE_GAME_MONTHLY>>>;
|
|
9
|
+
export default function fetchData<G extends GAME>(endpoint: PLAYER_MONTHLY_ENDPOINT<G, string>): Promise<MethodResponse<API_GAME_STATS<API_BASE_GAME_MONTHLY>[G]>>;
|
|
10
|
+
export default function fetchData<G extends GAME>(endpoint: GAME_LB_ALLTIME_ENDPOINT<G>): Promise<MethodResponse<API_REQUEST_LB<G>>>;
|
|
11
|
+
export default function fetchData<G extends GAME>(endpoint: GAME_LB_MONTHLY_ENDPOINT<G>): Promise<MethodResponse<API_REQUEST_LB<G>>>;
|
|
12
|
+
export default function fetchData<G extends GAME>(endpoint: PLAYER_LB_SPECIFIC_MONTHLY_ENDPOINT<G, string, number, number, number, number>): Promise<MethodResponse<API_REQUEST_LB<G>>>;
|
|
13
|
+
export default function fetchData<G extends GAME>(endpoint: GAME_LB_SPECIFIC_MONTHLY_ENDPOINT<G, number, number, number, number>): Promise<MethodResponse<API_REQUEST_LB<G>>>;
|
|
14
|
+
export default function fetchData(endpoint: GLOBAL_STATISTICS_ENDPOINT): Promise<MethodResponse<API_GLOBAL_STATISTICS>>;
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -35,45 +35,43 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
function fetch(apiPath) {
|
|
39
|
+
exports.API_ROOT = void 0;
|
|
40
|
+
exports.API_ROOT = "https://api.playhive.com/v0";
|
|
41
|
+
function fetchData(endpoint) {
|
|
46
42
|
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
-
var request, err_1;
|
|
43
|
+
var request, response, err_1;
|
|
48
44
|
return __generator(this, function (_a) {
|
|
49
45
|
switch (_a.label) {
|
|
50
46
|
case 0:
|
|
51
|
-
_a.trys.push([0,
|
|
52
|
-
return [4 /*yield*/,
|
|
47
|
+
_a.trys.push([0, 3, , 4]);
|
|
48
|
+
return [4 /*yield*/, fetch(exports.API_ROOT + endpoint)];
|
|
53
49
|
case 1:
|
|
54
50
|
request = _a.sent();
|
|
55
|
-
|
|
51
|
+
if (!request.ok)
|
|
52
|
+
return [2 /*return*/, {
|
|
53
|
+
data: null,
|
|
54
|
+
error: {
|
|
55
|
+
message: request.statusText,
|
|
56
|
+
status: request.status,
|
|
57
|
+
endpoint: exports.API_ROOT + endpoint,
|
|
58
|
+
},
|
|
59
|
+
}];
|
|
60
|
+
return [4 /*yield*/, request.json()];
|
|
56
61
|
case 2:
|
|
62
|
+
response = _a.sent();
|
|
63
|
+
return [2 /*return*/, {
|
|
64
|
+
data: response,
|
|
65
|
+
error: null,
|
|
66
|
+
}];
|
|
67
|
+
case 3:
|
|
57
68
|
err_1 = _a.sent();
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
function fetchData(apiPaths) {
|
|
65
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
-
var responses, responseValues;
|
|
67
|
-
return __generator(this, function (_a) {
|
|
68
|
-
switch (_a.label) {
|
|
69
|
-
case 0: return [4 /*yield*/, Promise.all(apiPaths.map(function (path) { return fetch(path); }))];
|
|
70
|
-
case 1:
|
|
71
|
-
responses = _a.sent();
|
|
72
|
-
responseValues = responses.map(function (_a) {
|
|
73
|
-
var apiPath = _a[0], response = _a[1];
|
|
74
|
-
return new Response_1.default(apiPath, response);
|
|
75
|
-
});
|
|
76
|
-
return [2 /*return*/, responseValues];
|
|
69
|
+
console.error(err_1);
|
|
70
|
+
return [2 /*return*/, {
|
|
71
|
+
data: null,
|
|
72
|
+
error: { message: "Failed to fetch data." },
|
|
73
|
+
}];
|
|
74
|
+
case 4: return [2 /*return*/];
|
|
77
75
|
}
|
|
78
76
|
});
|
|
79
77
|
});
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -14,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
26
|
function step(op) {
|
|
16
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
29
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
31
|
switch (op[0]) {
|
|
@@ -35,10 +46,36 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
47
|
}
|
|
37
48
|
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
38
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
var gameFormat_1 = require("../format/gameFormat");
|
|
54
|
+
var fetchData_1 = __importDefault(require("./fetchData"));
|
|
55
|
+
function getAllTimeLeaderboard(game) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var _a, data, error, gameData, err_1;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
switch (_b.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
_b.trys.push([0, 2, , 3]);
|
|
62
|
+
return [4 /*yield*/, (0, fetchData_1.default)("/game/all/".concat(game))];
|
|
63
|
+
case 1:
|
|
64
|
+
_a = _b.sent(), data = _a.data, error = _a.error;
|
|
65
|
+
if (error || !data)
|
|
66
|
+
return [2 /*return*/, {
|
|
67
|
+
data: null,
|
|
68
|
+
error: __assign({ message: "Failed to fetch data." }, error),
|
|
69
|
+
}];
|
|
70
|
+
gameData = (0, gameFormat_1.gameFormatArray)(game, data);
|
|
71
|
+
return [2 /*return*/, { data: gameData, error: null }];
|
|
72
|
+
case 2:
|
|
73
|
+
err_1 = _b.sent();
|
|
74
|
+
console.error(err_1);
|
|
75
|
+
return [2 /*return*/, { data: null, error: { message: "Failed to fetch data." } }];
|
|
76
|
+
case 3: return [2 /*return*/];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
43
80
|
}
|
|
44
|
-
exports.default =
|
|
81
|
+
exports.default = getAllTimeLeaderboard;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BASE_GAME_ALL, GAME_STATS, GAME_STATS_ALL, REQUEST_ALL, USER_MAIN } from "../types/GAMES";
|
|
2
|
+
import { GAME } from "../types/GAME_INFO";
|
|
3
|
+
import { MethodResponse } from "../types/METHODS";
|
|
4
|
+
export default function getAllTimeStats(playerIndentifier: string): Promise<MethodResponse<Omit<REQUEST_ALL, "main">> & {
|
|
5
|
+
player: USER_MAIN;
|
|
6
|
+
}>;
|
|
7
|
+
export default function getAllTimeStats<G extends GAME>(playerIdentifier: string, game: G): Promise<MethodResponse<GAME_STATS<BASE_GAME_ALL>[G]>>;
|
|
8
|
+
export default function getAllTimeStats<G extends GAME>(playerIdentifier: string, game: G[]): Promise<MethodResponse<{
|
|
9
|
+
[M in G]: GAME_STATS_ALL<M>;
|
|
10
|
+
}> & {
|
|
11
|
+
player: USER_MAIN;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
38
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
39
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
40
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
41
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
42
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
46
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
47
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
48
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
49
|
+
function step(op) {
|
|
50
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
51
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
52
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
53
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
54
|
+
switch (op[0]) {
|
|
55
|
+
case 0: case 1: t = op; break;
|
|
56
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
57
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
58
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
59
|
+
default:
|
|
60
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
61
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
62
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
63
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
64
|
+
if (t[2]) _.ops.pop();
|
|
65
|
+
_.trys.pop(); continue;
|
|
66
|
+
}
|
|
67
|
+
op = body.call(thisArg, _);
|
|
68
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
69
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
73
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
74
|
+
if (!m) return o;
|
|
75
|
+
var i = m.call(o), r, ar = [], e;
|
|
76
|
+
try {
|
|
77
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
78
|
+
}
|
|
79
|
+
catch (error) { e = { error: error }; }
|
|
80
|
+
finally {
|
|
81
|
+
try {
|
|
82
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
83
|
+
}
|
|
84
|
+
finally { if (e) throw e.error; }
|
|
85
|
+
}
|
|
86
|
+
return ar;
|
|
87
|
+
};
|
|
88
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
89
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
90
|
+
};
|
|
91
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
92
|
+
var gameFormat_1 = __importStar(require("../format/gameFormat"));
|
|
93
|
+
var GAME_INFO_1 = require("../types/GAME_INFO");
|
|
94
|
+
var fetchData_1 = __importDefault(require("./fetchData"));
|
|
95
|
+
function getAllTimeStats(playerIdentifier, game) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
+
var _a, data, error, gameData, filteredGamesEntries, filteredGames, err_1, _b, data, error, gameData, err_2, _c, data, error, gameData, FILTER_GAMES_1, filteredGamesEntries, filteredGames, err_3;
|
|
98
|
+
var _d;
|
|
99
|
+
return __generator(this, function (_e) {
|
|
100
|
+
switch (_e.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
if (!!game) return [3 /*break*/, 4];
|
|
103
|
+
_e.label = 1;
|
|
104
|
+
case 1:
|
|
105
|
+
_e.trys.push([1, 3, , 4]);
|
|
106
|
+
return [4 /*yield*/, (0, fetchData_1.default)("/game/all/all/".concat(playerIdentifier))];
|
|
107
|
+
case 2:
|
|
108
|
+
_a = _e.sent(), data = _a.data, error = _a.error;
|
|
109
|
+
if (error || !data)
|
|
110
|
+
return [2 /*return*/, {
|
|
111
|
+
data: null,
|
|
112
|
+
error: __assign({ message: "Failed to fetch data." }, error),
|
|
113
|
+
}];
|
|
114
|
+
gameData = (0, gameFormat_1.default)(data);
|
|
115
|
+
filteredGamesEntries = Object.entries(gameData).filter(function (_a) {
|
|
116
|
+
var _b = __read(_a, 1), key = _b[0];
|
|
117
|
+
return Object.values(GAME_INFO_1.GAME).includes(key);
|
|
118
|
+
});
|
|
119
|
+
filteredGames = Object.fromEntries(filteredGamesEntries);
|
|
120
|
+
return [2 /*return*/, {
|
|
121
|
+
data: filteredGames,
|
|
122
|
+
error: null,
|
|
123
|
+
player: gameFormat_1.formats.main(data.main),
|
|
124
|
+
}];
|
|
125
|
+
case 3:
|
|
126
|
+
err_1 = _e.sent();
|
|
127
|
+
console.error(err_1);
|
|
128
|
+
return [2 /*return*/, { data: null, error: { message: "Failed to fetch data." } }];
|
|
129
|
+
case 4:
|
|
130
|
+
if (!(typeof game === "string")) return [3 /*break*/, 8];
|
|
131
|
+
_e.label = 5;
|
|
132
|
+
case 5:
|
|
133
|
+
_e.trys.push([5, 7, , 8]);
|
|
134
|
+
return [4 /*yield*/, (0, fetchData_1.default)("/game/all/".concat(game, "/").concat(playerIdentifier))];
|
|
135
|
+
case 6:
|
|
136
|
+
_b = _e.sent(), data = _b.data, error = _b.error;
|
|
137
|
+
if (error || !data)
|
|
138
|
+
return [2 /*return*/, {
|
|
139
|
+
data: null,
|
|
140
|
+
error: __assign({ message: "Failed to fetch data." }, error),
|
|
141
|
+
}];
|
|
142
|
+
gameData = (0, gameFormat_1.default)((_d = {}, _d[game] = data, _d));
|
|
143
|
+
return [2 /*return*/, { data: gameData[game], error: null }];
|
|
144
|
+
case 7:
|
|
145
|
+
err_2 = _e.sent();
|
|
146
|
+
console.error(err_2);
|
|
147
|
+
return [2 /*return*/, { data: null, error: { message: "Failed to fetch data." } }];
|
|
148
|
+
case 8:
|
|
149
|
+
if (!Array.isArray(game)) return [3 /*break*/, 12];
|
|
150
|
+
_e.label = 9;
|
|
151
|
+
case 9:
|
|
152
|
+
_e.trys.push([9, 11, , 12]);
|
|
153
|
+
return [4 /*yield*/, (0, fetchData_1.default)("/game/all/all/".concat(playerIdentifier))];
|
|
154
|
+
case 10:
|
|
155
|
+
_c = _e.sent(), data = _c.data, error = _c.error;
|
|
156
|
+
if (error || !data)
|
|
157
|
+
return [2 /*return*/, {
|
|
158
|
+
data: null,
|
|
159
|
+
error: __assign({ message: "Failed to fetch data." }, error),
|
|
160
|
+
}];
|
|
161
|
+
gameData = (0, gameFormat_1.default)(data);
|
|
162
|
+
FILTER_GAMES_1 = game;
|
|
163
|
+
filteredGamesEntries = Object.entries(gameData).filter(function (_a) {
|
|
164
|
+
var _b = __read(_a, 1), key = _b[0];
|
|
165
|
+
return FILTER_GAMES_1.includes(key);
|
|
166
|
+
});
|
|
167
|
+
filteredGames = Object.fromEntries(filteredGamesEntries);
|
|
168
|
+
return [2 /*return*/, {
|
|
169
|
+
data: filteredGames,
|
|
170
|
+
error: null,
|
|
171
|
+
player: gameFormat_1.formats.main(data.main),
|
|
172
|
+
}];
|
|
173
|
+
case 11:
|
|
174
|
+
err_3 = _e.sent();
|
|
175
|
+
console.error(err_3);
|
|
176
|
+
return [2 /*return*/, { data: null, error: { message: "Failed to fetch data." } }];
|
|
177
|
+
case 12: return [2 /*return*/, { data: null, error: { message: "Failed to detect game type." } }];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
exports.default = getAllTimeStats;
|