feat: switched to Node module resolution

This commit is contained in:
TresAbhi committed 2023-07-11 19:54:57 +00:00
1 parent 21158e9081
commit 1d4ac2f133
108 files changed
+541 -533

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
import { AllStats } from '../../types/accountInfo.js';
import { AllStats } from '../../types/accountInfo';
/**
* Formula from https://web.archive.org/web/20190105064817/http://wiki.wnefficiency.net/pages/WN8
+1 -1
View File
@@ -1,4 +1,4 @@
import { AllStats } from '../../types/accountInfo.js';
import { AllStats } from '../../types/accountInfo';
export default function diffStats(stats1: AllStats, stats2: AllStats) {
function diff(value: (allStats: AllStats) => number) {
+4 -4
View File
@@ -1,7 +1,7 @@
import { BlitzServer } from '../../constants/servers.js';
import { serverAndIdPattern } from '../discord/resolvePlayerFromCommand.js';
import throwError from '../node/throwError.js';
import listClans from './listClans.js';
import { BlitzServer } from '../../constants/servers';
import { serverAndIdPattern } from '../discord/resolvePlayerFromCommand';
import throwError from '../node/throwError';
import listClans from './listClans';
export default async function getBlitzClan(clan: string) {
if (serverAndIdPattern.test(clan)) {
+5 -5
View File
@@ -1,8 +1,8 @@
import { BLITZ_SERVERS, BlitzServer } from '../../constants/servers.js';
import { TanksStats } from '../../types/tanksStats.js';
import { WARGAMING_APPLICATION_ID } from '../node/arguments.js';
import throwError from '../node/throwError.js';
import getWargamingResponse from './getWargamingResponse.js';
import { BLITZ_SERVERS, BlitzServer } from '../../constants/servers';
import { TanksStats } from '../../types/tanksStats';
import { WARGAMING_APPLICATION_ID } from '../node/arguments';
import throwError from '../node/throwError';
import getWargamingResponse from './getWargamingResponse';
export default async function getTankStats(server: BlitzServer, id: number) {
const tankStats = await getWargamingResponse<TanksStats>(
+2 -2
View File
@@ -1,5 +1,5 @@
import { TreeType } from '../../components/Tanks/index.js';
import { tankopedia } from './tankopedia.js';
import { TreeType } from '../../components/Tanks';
import { tankopedia } from './tankopedia';
export default async function getTreeType(id: number) {
const entry = (await tankopedia)[id];
+1 -1
View File
@@ -1,4 +1,4 @@
import { Percentile } from '../../constants/percentiles.js';
import { Percentile } from '../../constants/percentiles';
export const WN8_PERCENTILES: [number, Percentile][] = [
[0, Percentile.VeryBad],
+1 -1
View File
@@ -1,4 +1,4 @@
import throwError from '../node/throwError.js';
import throwError from '../node/throwError';
export type WargamingResponse<Data extends object> =
| {
+4 -4
View File
@@ -1,7 +1,7 @@
import { BlitzServer } from '../../constants/servers.js';
import { Clan, ClanList } from '../../types/clanList.js';
import { WARGAMING_APPLICATION_ID } from '../node/arguments.js';
import getWargamingResponse from './getWargamingResponse.js';
import { BlitzServer } from '../../constants/servers';
import { Clan, ClanList } from '../../types/clanList';
import { WARGAMING_APPLICATION_ID } from '../node/arguments';
import getWargamingResponse from './getWargamingResponse';
export type ClanListWithServer = (Clan & {
server: 'com' | 'eu' | 'asia';
+4 -4
View File
@@ -1,7 +1,7 @@
import { BlitzServer } from '../../constants/servers.js';
import { Account, AccountList } from '../../types/accountList.js';
import { WARGAMING_APPLICATION_ID } from '../node/arguments.js';
import getWargamingResponse from './getWargamingResponse.js';
import { BlitzServer } from '../../constants/servers';
import { Account, AccountList } from '../../types/accountList';
import { WARGAMING_APPLICATION_ID } from '../node/arguments';
import getWargamingResponse from './getWargamingResponse';
export type AccountListWithServer = (Account & {
server: 'com' | 'eu' | 'asia';
+2 -2
View File
@@ -1,6 +1,6 @@
import { go } from 'fuzzysort';
import throwError from '../node/throwError.js';
import { TANKS, tankopedia } from './tankopedia.js';
import throwError from '../node/throwError';
import { TANKS, tankopedia } from './tankopedia';
export default async function resolveTankId(tank: string) {
const number = parseInt(tank);
+1 -1
View File
@@ -1,4 +1,4 @@
import { tankopedia } from './tankopedia.js';
import { tankopedia } from './tankopedia';
export default async function resolveTankName(tankId: number) {
const tankopediaName = (await tankopedia)[tankId]?.name;
+2 -2
View File
@@ -1,5 +1,5 @@
import { AllStats } from '../../types/accountInfo.js';
import { emptyAllStats } from '../blitzstars/getDiffedTankStats.js';
import { AllStats } from '../../types/accountInfo';
import { emptyAllStats } from '../blitzstars/getDiffedTankStats';
export default function sumStats(allStatsCollection: AllStats[]) {
return allStatsCollection.reduce((accumulated, current) => {
+3 -3
View File
@@ -1,9 +1,9 @@
import { BlitzServer } from '../../constants/servers.js';
import { AllStats } from '../../types/accountInfo.js';
import { BlitzServer } from '../../constants/servers';
import { AllStats } from '../../types/accountInfo';
import getTankHistories, {
TankHistories,
TankHistoryRaw,
} from './getTankHistories.js';
} from './getTankHistories';
export const emptyAllStats: AllStats = {
battles: 0,
+3 -3
View File
@@ -1,6 +1,6 @@
import { BlitzServer } from '../../constants/servers.js';
import { Period } from '../discord/addPeriodSubCommands.js';
import getTimeDaysAgo from './getTimeDaysAgo.js';
import { BlitzServer } from '../../constants/servers';
import { Period } from '../discord/addPeriodSubCommands';
import getTimeDaysAgo from './getTimeDaysAgo';
export default function getPeriodStart(
server: BlitzServer,
+7 -7
View File
@@ -1,14 +1,14 @@
import { BlitzServer } from '../../constants/servers.js';
import { AccountInfo, AllStats } from '../../types/accountInfo.js';
import { BlitzServer } from '../../constants/servers';
import { AccountInfo, AllStats } from '../../types/accountInfo';
import {
GetHistoriesOptions,
Histories,
History,
getHistoriesDefaultOptions,
} from '../../types/histories.js';
import getWargamingResponse from '../blitz/getWargamingResponse.js';
import { WARGAMING_APPLICATION_ID } from '../node/arguments.js';
import { emptyAllStats } from './getDiffedTankStats.js';
} from '../../types/histories';
import getWargamingResponse from '../blitz/getWargamingResponse';
import { WARGAMING_APPLICATION_ID } from '../node/arguments';
import { emptyAllStats } from './getDiffedTankStats';
export interface PlayerHistoryRaw {
clan: { clan_id: number; name: string; tag: string };
@@ -44,7 +44,7 @@ export default async function getPlayerHistories(
({
all: history.statistics.all,
last_battle_time: history.last_battle_time,
} satisfies History),
}) satisfies History,
);
let lastNonCompliantIndex = -1;
let hasCompliedOnce = false;
+5 -5
View File
@@ -1,12 +1,12 @@
import { BlitzServer } from '../../constants/servers.js';
import { BlitzServer } from '../../constants/servers';
import {
GetHistoriesOptions,
Histories,
History,
getHistoriesDefaultOptions,
} from '../../types/histories.js';
import getTankStats from '../blitz/getTankStats.js';
import { emptyAllStats } from './getDiffedTankStats.js';
} from '../../types/histories';
import getTankStats from '../blitz/getTankStats';
import { emptyAllStats } from './getDiffedTankStats';
export interface TankHistory extends History {
tank_id: number;
@@ -48,7 +48,7 @@ export default 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> = {};
+1 -1
View File
@@ -1,4 +1,4 @@
import { BlitzServer } from '../../constants/servers.js';
import { BlitzServer } from '../../constants/servers';
export const TIME_ZONE_MAPPINGS: Record<BlitzServer, number> = {
com: -5, // Central North American Time
+3 -3
View File
@@ -1,6 +1,6 @@
import sumStats from '../blitz/sumStats.js';
import { emptyAllStats } from './getDiffedTankStats.js';
import { tankAverages } from './tankAverages.js';
import sumStats from '../blitz/sumStats';
import { emptyAllStats } from './getDiffedTankStats';
import { tankAverages } from './tankAverages';
console.log('Calculating player average...');
export const playerAverage = Object.entries(await tankAverages).reduce(
+1 -1
View File
@@ -1,4 +1,4 @@
import { AllStats } from '../../types/accountInfo.js';
import { AllStats } from '../../types/accountInfo';
export interface SpecialStats {
winrate: number;
+1 -1
View File
@@ -2,7 +2,7 @@ import {
SlashCommandSubcommandBuilder,
SlashCommandSubcommandGroupBuilder,
} from 'discord.js';
import { PERIOD_NAMES } from '../discord/resolvePeriodFromCommand.js';
import { PERIOD_NAMES } from '../discord/resolvePeriodFromCommand';
export type Period = 'today' | '30' | '60' | '90' | 'career' | 'custom';
+1 -1
View File
@@ -1,5 +1,5 @@
import { SlashCommandStringOption } from 'discord.js';
import { BLITZ_SERVERS } from '../../constants/servers.js';
import { BLITZ_SERVERS } from '../../constants/servers';
export default function addServerChoices(option: SlashCommandStringOption) {
return option
@@ -1,7 +1,7 @@
import { SlashCommandBuilder } from 'discord.js';
import addPeriodSubCommands from './addPeriodSubCommands.js';
import addTankChoices from './addTankChoices.js';
import addUsernameChoices from './addUsernameChoices.js';
import addPeriodSubCommands from './addPeriodSubCommands';
import addTankChoices from './addTankChoices';
import addUsernameChoices from './addUsernameChoices';
export default function addStatTypeSubCommandGroups(
option: SlashCommandBuilder,
+3 -3
View File
@@ -3,8 +3,8 @@ import {
AutocompleteInteraction,
CacheType,
} from 'discord.js';
import { BLITZ_SERVERS } from '../../constants/servers.js';
import listClans from '../blitz/listClans.js';
import { BLITZ_SERVERS } from '../../constants/servers';
import listClans from '../blitz/listClans';
export default async function autocompleteClan(
interaction: AutocompleteInteraction<CacheType>,
@@ -20,7 +20,7 @@ export default async function autocompleteClan(
({
name: `${player.name} (${BLITZ_SERVERS[player.server]})`,
value: `${player.server}/${player.clan_id}`,
} satisfies ApplicationCommandOptionChoiceData<string>),
}) satisfies ApplicationCommandOptionChoiceData<string>,
)
: [],
);
+7 -4
View File
@@ -4,8 +4,8 @@ import {
CacheType,
} from 'discord.js';
import { go } from 'fuzzysort';
import resolveTankName from '../blitz/resolveTankName.js';
import { TANKS } from '../blitz/tankopedia.js';
import resolveTankName from '../blitz/resolveTankName';
import { TANKS } from '../blitz/tankopedia';
export default async function autocompleteTanks(
interaction: AutocompleteInteraction<CacheType>,
@@ -16,14 +16,17 @@ export default async function autocompleteTanks(
await interaction.respond(
focusedOption.value
? await Promise.all(
go(focusedOption.value, await TANKS, { keys: ['name'], limit: 10 }).map(
go(focusedOption.value, await TANKS, {
keys: ['name'],
limit: 10,
}).map(
async (item) =>
({
name: item.obj.name
? item.obj.name
: await resolveTankName(item.obj.tank_id),
value: `${item.obj.tank_id}`,
} satisfies ApplicationCommandOptionChoiceData<string>),
}) satisfies ApplicationCommandOptionChoiceData<string>,
),
)
: [],
+3 -3
View File
@@ -3,8 +3,8 @@ import {
AutocompleteInteraction,
CacheType,
} from 'discord.js';
import { BLITZ_SERVERS } from '../../constants/servers.js';
import listPlayers from '../blitz/listPlayers.js';
import { BLITZ_SERVERS } from '../../constants/servers';
import listPlayers from '../blitz/listPlayers';
export default async function autocompleteUsername(
interaction: AutocompleteInteraction<CacheType>,
@@ -21,7 +21,7 @@ export default async function autocompleteUsername(
({
name: `${player.nickname} (${BLITZ_SERVERS[player.server]})`,
value: `${player.server}/${player.account_id}`,
} satisfies ApplicationCommandOptionChoiceData<string>),
}) satisfies ApplicationCommandOptionChoiceData<string>,
)
: [],
);
+1 -1
View File
@@ -1,5 +1,5 @@
import { EmbedBuilder } from 'discord.js';
import { ACCENT_COLOR } from '../../constants/colors.js';
import { ACCENT_COLOR } from '../../constants/colors';
export default function embedInfo(title: string, description: string) {
const embed = new EmbedBuilder()
+1 -1
View File
@@ -1,5 +1,5 @@
import { EmbedBuilder } from 'discord.js';
import { NEGATIVE_COLOR } from '../../constants/colors.js';
import { NEGATIVE_COLOR } from '../../constants/colors';
export default function embedNegative(title: string, description: string) {
return new EmbedBuilder()
+1 -1
View File
@@ -1,5 +1,5 @@
import { EmbedBuilder } from 'discord.js';
import { POSITIVE_COLOR } from '../../constants/colors.js';
import { POSITIVE_COLOR } from '../../constants/colors';
export default function embedPositive(title: string, description: string) {
return new EmbedBuilder()
+1 -1
View File
@@ -1,5 +1,5 @@
import { EmbedBuilder } from 'discord.js';
import { WARNING_COLOR } from '../../constants/colors.js';
import { WARNING_COLOR } from '../../constants/colors';
export default function embedWarning(title: string, description: string) {
return new EmbedBuilder()
@@ -4,8 +4,8 @@ import {
EmbedBuilder,
InteractionEditReplyOptions,
} from 'discord.js';
import { InteractionReturnable } from '../../events/interactionCreate/index.js';
import jsxToPng from '../node/jsxToPng.js';
import { InteractionReturnable } from '../../events/interactionCreate';
import jsxToPng from '../node/jsxToPng';
export default async function normalizeInteractionReturnable(
returnable: InteractionReturnable,
+3 -3
View File
@@ -1,7 +1,7 @@
import { ButtonInteraction, CacheType } from 'discord.js';
import { CYCLIC_API } from '../../constants/cyclic.js';
import { BlitzServer } from '../../constants/servers.js';
import resolvePeriodFromURL from '../express/resolvePeriodFromURL.js';
import { CYCLIC_API } from '../../constants/cyclic';
import { BlitzServer } from '../../constants/servers';
import resolvePeriodFromURL from '../express/resolvePeriodFromURL';
export default function resolvePeriodFromButton(
server: BlitzServer,
+5 -5
View File
@@ -1,9 +1,9 @@
import { CacheType, ChatInputCommandInteraction } from 'discord.js';
import { BlitzServer } from '../../constants/servers.js';
import getPeriodNow from '../blitzstars/getPeriodNow.js';
import getPeriodStart from '../blitzstars/getPeriodStart.js';
import getTimeDaysAgo from '../blitzstars/getTimeDaysAgo.js';
import { Period } from '../discord/addPeriodSubCommands.js';
import { BlitzServer } from '../../constants/servers';
import getPeriodNow from '../blitzstars/getPeriodNow';
import getPeriodStart from '../blitzstars/getPeriodStart';
import getTimeDaysAgo from '../blitzstars/getTimeDaysAgo';
import { Period } from '../discord/addPeriodSubCommands';
export const PERIOD_NAMES: Record<Period, string> = {
today: "Today's statistics",
+2 -2
View File
@@ -1,6 +1,6 @@
import { ButtonInteraction, CacheType } from 'discord.js';
import { CYCLIC_API } from '../../constants/cyclic.js';
import resolvePlayerFromURL from '../express/resolvePlayerFromURL.js';
import { CYCLIC_API } from '../../constants/cyclic';
import resolvePlayerFromURL from '../express/resolvePlayerFromURL';
export default async function resolvePlayerFromButton(
interaction: ButtonInteraction<CacheType>,
+3 -3
View File
@@ -1,9 +1,9 @@
import { CacheType, ChatInputCommandInteraction } from 'discord.js';
import { BlitzServer } from '../../constants/servers.js';
import { BlitzServer } from '../../constants/servers';
import listPlayers, {
usernamePatternWithoutPosition,
} from '../blitz/listPlayers.js';
import throwError from '../node/throwError.js';
} from '../blitz/listPlayers';
import throwError from '../node/throwError';
export const serverAndIdPattern = /(com|eu|asia)\/[0-9]+/;
+2 -2
View File
@@ -1,5 +1,5 @@
import { RouteReturnable } from '../../server.js';
import jsxToSvg from '../node/jsxToSvg.js';
import { RouteReturnable } from '../../server';
import jsxToSvg from '../node/jsxToSvg';
export default async function normalizeRouteReturnable(
returnable: RouteReturnable,
+3 -3
View File
@@ -1,7 +1,7 @@
import { Request } from 'express';
import { CYCLIC_API } from '../../constants/cyclic.js';
import { BlitzServer } from '../../constants/servers.js';
import resolvePeriodFromURL from './resolvePeriodFromURL.js';
import { CYCLIC_API } from '../../constants/cyclic';
import { BlitzServer } from '../../constants/servers';
import resolvePeriodFromURL from './resolvePeriodFromURL';
export default function resolvePeriodFromRequest(
server: BlitzServer,
+6 -6
View File
@@ -1,13 +1,13 @@
import { BlitzServer } from '../../constants/servers.js';
import getPeriodNow from '../blitzstars/getPeriodNow.js';
import getPeriodStart from '../blitzstars/getPeriodStart.js';
import getTimeDaysAgo from '../blitzstars/getTimeDaysAgo.js';
import { Period } from '../discord/addPeriodSubCommands.js';
import { BlitzServer } from '../../constants/servers';
import getPeriodNow from '../blitzstars/getPeriodNow';
import getPeriodStart from '../blitzstars/getPeriodStart';
import getTimeDaysAgo from '../blitzstars/getTimeDaysAgo';
import { Period } from '../discord/addPeriodSubCommands';
import {
EVOLUTION_PERIOD_NAMES,
PERIOD_NAMES,
ResolvedPeriod,
} from '../discord/resolvePeriodFromCommand.js';
} from '../discord/resolvePeriodFromCommand';
export default function resolvePeriodFromURL(
server: BlitzServer,
+2 -2
View File
@@ -1,6 +1,6 @@
import { Request } from 'express';
import { CYCLIC_API } from '../../constants/cyclic.js';
import resolvePlayerFromURL from './resolvePlayerFromURL.js';
import { CYCLIC_API } from '../../constants/cyclic';
import resolvePlayerFromURL from './resolvePlayerFromURL';
export default function resolvePlayerFromRequest(request: Request) {
return resolvePlayerFromURL(`${CYCLIC_API}${request.originalUrl}`);
+2 -2
View File
@@ -1,5 +1,5 @@
import { BlitzServer } from '../../constants/servers.js';
import { ResolvedPlayer } from '../discord/resolvePlayerFromCommand.js';
import { BlitzServer } from '../../constants/servers';
import { ResolvedPlayer } from '../discord/resolvePlayerFromCommand';
export default function resolvePlayerFromURL(urlString: string) {
const url = new URL(urlString);
+1 -1
View File
@@ -1,5 +1,5 @@
import discord from '../../../discord.json' assert { type: 'json' };
import isDev from './isDev.js';
import isDev from './isDev';
export default function getClientId() {
return isDev() ? discord.client_id_dev : discord.client_id;
+2 -2
View File
@@ -1,5 +1,5 @@
import jsxToSvg from './jsxToSvg.js';
import svgToPng from './svgToPng.js';
import jsxToSvg from './jsxToSvg';
import svgToPng from './svgToPng';
export default async function jsxToPng(jsx: JSX.Element) {
const svg = await jsxToSvg(jsx);
+3 -3
View File
@@ -1,5 +1,5 @@
import { Resvg } from "@resvg/resvg-js";
import { Resvg } from '@resvg/resvg-js';
export default function svgToPng(svg: string) {
return new Resvg(svg).render().asPng()
}
return new Resvg(svg).render().asPng();
}