mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-11-14 21:26:08 +01:00
feat: some more type prefixes
This commit is contained in:
1 parent
0d8cb5c1ae
commit
26304fc281
71 files changed
+411
-409
No files matched your search
@@ -1,10 +1,10 @@
|
||||
import { TankClass, TankType } from '@blitzkit/core';
|
||||
import { SupplementaryStats } from '@blitzkit/core/src/blitz/getAccountInfo';
|
||||
import { calculateWN8 } from '@blitzkit/core/src/statistics/calculateWN8';
|
||||
import { BlitzStats } from '@blitzkit/core/src/statistics/compositeStats';
|
||||
import { sumAllStats } from '@blitzkit/core/src/statistics/sumAllStats';
|
||||
import { tankDefinitions } from '../blitzkit/nonBlockingPromises';
|
||||
import { blitzStarsTankAverages } from './tankAverages';
|
||||
import { TankClass, TankType } from "@blitzkit/core";
|
||||
import type { SupplementaryStats } from "@blitzkit/core/src/blitz/getAccountInfo";
|
||||
import { calculateWN8 } from "@blitzkit/core/src/statistics/calculateWN8";
|
||||
import type { BlitzStats } from "@blitzkit/core/src/statistics/compositeStats";
|
||||
import { sumAllStats } from "@blitzkit/core/src/statistics/sumAllStats";
|
||||
import { tankDefinitions } from "../blitzkit/nonBlockingPromises";
|
||||
import { blitzStarsTankAverages } from "./tankAverages";
|
||||
|
||||
export interface StatFilters {
|
||||
nation?: string;
|
||||
@@ -16,7 +16,7 @@ export interface StatFilters {
|
||||
|
||||
export async function filterStats(
|
||||
{ diff, order }: DiffedTankStats,
|
||||
filters: StatFilters,
|
||||
filters: StatFilters
|
||||
) {
|
||||
// tank, if provided, takes priority over all other filters
|
||||
if (filters.tank) filters = { tank: filters.tank };
|
||||
@@ -45,14 +45,14 @@ export async function filterStats(
|
||||
const battlesOfTanksWithAverages = filteredOrder.reduce<number>(
|
||||
(accumulator, id) =>
|
||||
awaitedTankAverages[id] ? accumulator + diff[id].battles : accumulator,
|
||||
0,
|
||||
0
|
||||
);
|
||||
const battlesOfTanksWithTankDefinition = filteredOrder.reduce<number>(
|
||||
(accumulator, id) =>
|
||||
awaitedTankDefinitions.tanks[id]
|
||||
? accumulator + diff[id].battles
|
||||
: accumulator,
|
||||
0,
|
||||
0
|
||||
);
|
||||
const supplementary = {
|
||||
WN8:
|
||||
@@ -63,7 +63,7 @@ export async function filterStats(
|
||||
calculateWN8(awaitedTankAverages[id].all, diff[id]) *
|
||||
diff[id].battles
|
||||
: accumulator,
|
||||
0,
|
||||
0
|
||||
) / battlesOfTanksWithAverages,
|
||||
tier:
|
||||
filteredOrder.reduce<number>(
|
||||
@@ -72,7 +72,7 @@ export async function filterStats(
|
||||
? accumulator +
|
||||
awaitedTankDefinitions.tanks[id]!.tier * diff[id].battles
|
||||
: accumulator,
|
||||
0,
|
||||
0
|
||||
) / battlesOfTanksWithTankDefinition,
|
||||
} satisfies SupplementaryStats;
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import { getAccountInfo, Region } from '@blitzkit/core';
|
||||
import { buttonLink } from '../discord/buttonLink';
|
||||
import { getAccountInfo, type Region } from "@blitzkit/core";
|
||||
import { buttonLink } from "../discord/buttonLink";
|
||||
|
||||
export async function getBlitzStarsLinkButton(
|
||||
region: Region,
|
||||
id: number,
|
||||
tankId?: number,
|
||||
tankId?: number
|
||||
) {
|
||||
const { nickname } = await getAccountInfo(region, id);
|
||||
|
||||
return buttonLink(
|
||||
`https://www.blitzstars.com/player/${region}/${nickname}${
|
||||
tankId ? `/tank/${tankId!}` : ''
|
||||
tankId ? `/tank/${tankId!}` : ""
|
||||
}`,
|
||||
'BlitzStars',
|
||||
"BlitzStars"
|
||||
);
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Region, emptyAllStats, getAccountInfo } from '@blitzkit/core';
|
||||
import { type Region, emptyAllStats, getAccountInfo } from '@blitzkit/core';
|
||||
import {
|
||||
GetHistoriesOptions,
|
||||
Histories,
|
||||
History,
|
||||
type GetHistoriesOptions,
|
||||
type Histories,
|
||||
type History,
|
||||
getHistoriesDefaultOptions,
|
||||
} from '../../types/histories';
|
||||
import { PlayerStats } from './getPlayerStats';
|
||||
import type { PlayerStats } from './getPlayerStats';
|
||||
|
||||
export async function getPlayerHistories(
|
||||
server: Region,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { BlitzStats, Region } from '@blitzkit/core';
|
||||
import type { BlitzStats, Region } from "@blitzkit/core";
|
||||
|
||||
interface IndividualPlayerStats {
|
||||
clan: { clan_id: number; name: string; tag: string };
|
||||
@@ -25,13 +25,13 @@ export async function getPlayerStats<
|
||||
ReturnType = Ids extends number ? PlayerStats : PlayerStats[],
|
||||
>(region: Region, ids: Ids) {
|
||||
const stats = await Promise.all(
|
||||
((typeof ids === 'number' ? [ids] : ids) as number[]).map((id) =>
|
||||
((typeof ids === "number" ? [ids] : ids) as number[]).map((id) =>
|
||||
fetch(`https://www.blitzstars.com/api/playerstats/${id}`).then(
|
||||
(response) => response.json() as Promise<PlayerStats>,
|
||||
),
|
||||
),
|
||||
(response) => response.json() as Promise<PlayerStats>
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
if (typeof ids === 'number') return stats[0] as ReturnType;
|
||||
if (typeof ids === "number") return stats[0] as ReturnType;
|
||||
return stats as ReturnType;
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
import { BlitzStats, emptyAllStats, Region } from '@blitzkit/core';
|
||||
import { Locale } from 'discord.js';
|
||||
import { DiffedTankStats } from './filterStats';
|
||||
import { type BlitzStats, emptyAllStats, type Region } from "@blitzkit/core";
|
||||
import { Locale } from "discord.js";
|
||||
import type { DiffedTankStats } from "./filterStats";
|
||||
import {
|
||||
getTankHistories,
|
||||
TankHistories,
|
||||
TankHistoryRaw,
|
||||
} from './getTankHistories';
|
||||
type TankHistories,
|
||||
type TankHistoryRaw,
|
||||
} from "./getTankHistories";
|
||||
|
||||
const emptyTankHistoryNode: TankHistoryRaw = {
|
||||
account_id: 0,
|
||||
@@ -22,7 +22,7 @@ export async function getStatsInPeriod(
|
||||
id: number,
|
||||
start: number,
|
||||
end: number,
|
||||
locale: Locale,
|
||||
locale: Locale
|
||||
) {
|
||||
const history = await getTankHistories(server, id, locale, {
|
||||
includeLatestHistories: true,
|
||||
@@ -43,8 +43,8 @@ export async function getStatsInPeriod(
|
||||
// find the ones played within the range
|
||||
const inRangeTanks = tanks.filter((tankId) =>
|
||||
tankSortedHistory[tankId].some(
|
||||
(node) => node.last_battle_time > start && node.last_battle_time < end,
|
||||
),
|
||||
(node) => node.last_battle_time > start && node.last_battle_time < end
|
||||
)
|
||||
);
|
||||
const playedTanks: number[] = [];
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Region, emptyAllStats, getTankStats } from '@blitzkit/core';
|
||||
import { Locale } from 'discord.js';
|
||||
import { type Region, emptyAllStats, getTankStats } from "@blitzkit/core";
|
||||
import { Locale } from "discord.js";
|
||||
import {
|
||||
GetHistoriesOptions,
|
||||
Histories,
|
||||
History,
|
||||
type GetHistoriesOptions,
|
||||
type Histories,
|
||||
type History,
|
||||
getHistoriesDefaultOptions,
|
||||
} from '../../types/histories';
|
||||
import { UserError } from '../blitzkit/userError';
|
||||
import { translator } from '../localization/translator';
|
||||
} from "../../types/histories";
|
||||
import { UserError } from "../blitzkit/userError";
|
||||
import { translator } from "../localization/translator";
|
||||
|
||||
export interface TankHistory extends History {
|
||||
tank_id: number;
|
||||
@@ -36,12 +36,12 @@ export async function getTankHistories(
|
||||
server: Region,
|
||||
id: number,
|
||||
locale: Locale,
|
||||
options?: Partial<GetTankHistoriesOptions>,
|
||||
options?: Partial<GetTankHistoriesOptions>
|
||||
) {
|
||||
const { strings } = translator(locale);
|
||||
const mergedOptions = { ...getTankHistoriesDefaultOptions, ...options };
|
||||
const tankHistoriesResponse = await fetch(
|
||||
`https://www.blitzstars.com/api/tankhistories/for/${id}/`,
|
||||
`https://www.blitzstars.com/api/tankhistories/for/${id}/`
|
||||
);
|
||||
const tankHistories = (
|
||||
(await tankHistoriesResponse.json()) as TankHistoriesRaw
|
||||
@@ -51,7 +51,7 @@ export async function getTankHistories(
|
||||
all: history.all,
|
||||
last_battle_time: history.last_battle_time,
|
||||
tank_id: history.tank_id,
|
||||
}) satisfies TankHistory,
|
||||
}) satisfies TankHistory
|
||||
);
|
||||
const compliantTanks: number[] = [];
|
||||
const lastBattles: Record<number, number> = {};
|
||||
@@ -73,7 +73,7 @@ export async function getTankHistories(
|
||||
lastBattles[tank_id] = battles;
|
||||
|
||||
return complies;
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
const latestNodes: TankHistories = [];
|
||||
@@ -112,7 +112,7 @@ export async function getTankHistories(
|
||||
all: emptyAllStats,
|
||||
last_battle_time: -Infinity,
|
||||
tank_id: tankId,
|
||||
} satisfies TankHistory),
|
||||
} satisfies TankHistory)
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user