mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-09-07 19:55:46 -05:00
Enable Biome rules 5
This commit is contained in:
@@ -2,7 +2,7 @@ import clsx from "clsx";
|
||||
import * as React from "react";
|
||||
import { abilities } from "~/modules/in-game-lists/abilities";
|
||||
import type { BuildAbilitiesTupleWithUnknown } from "~/modules/in-game-lists/types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { abilityImageUrl } from "~/utils/urls";
|
||||
import styles from "./AbilitiesSelector.module.css";
|
||||
import { Ability } from "./Ability";
|
||||
|
||||
@@ -24,7 +24,7 @@ ChartJS.register(
|
||||
Tooltip,
|
||||
);
|
||||
|
||||
export default function Chart({
|
||||
export function Chart({
|
||||
options,
|
||||
containerClassName,
|
||||
headerSuffix,
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
} from "~/components/elements/Button";
|
||||
import { SendouDialog } from "~/components/elements/Dialog";
|
||||
import { useHydrated } from "~/hooks/useHydrated";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { FormMessage } from "./FormMessage";
|
||||
import { SubmitButton } from "./SubmitButton";
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { SendouAnchoredPopover } from "./elements/Popover";
|
||||
import { LocaleTime } from "./LocaleTime";
|
||||
import styles from "./TimePopover.module.css";
|
||||
|
||||
export default function TimePopover({
|
||||
export function TimePopover({
|
||||
date,
|
||||
options = {
|
||||
minute: "numeric",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as React from "react";
|
||||
import { afterEach, describe, expect, test, vi } from "vitest";
|
||||
import { render } from "vitest-browser-react";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { useCloseOnScrollClip } from "./useCloseOnScrollClip";
|
||||
|
||||
const PAGE_HEIGHT = 5000;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import TimePopover from "~/components/TimePopover";
|
||||
import { TimePopover } from "~/components/TimePopover";
|
||||
|
||||
interface MatchBannerScheduledTimeProps {
|
||||
time: Date;
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
useUserCardData,
|
||||
} from "~/features/user-card/components/UserCard";
|
||||
import type { MainWeaponId } from "~/modules/in-game-lists/types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { CommonUser } from "~/utils/kysely.server";
|
||||
import { tierImageUrl } from "~/utils/urls";
|
||||
import { SendouTabPanel } from "../elements/Tabs";
|
||||
|
||||
@@ -2,7 +2,7 @@ import { BarChart3, Key, ScrollText, Tally5, Users } from "lucide-react";
|
||||
import type * as React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useSearchParam } from "~/modules/search-params/hooks";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { SendouTab, SendouTabList, SendouTabs } from "../elements/Tabs";
|
||||
import styles from "./MatchTabs.module.css";
|
||||
import { matchPageSearchParams } from "./match-page-search-params";
|
||||
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
canonicalWeaponSplId,
|
||||
mainWeaponIds,
|
||||
} from "~/modules/in-game-lists/weapon-ids";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { faker } from "./faker";
|
||||
|
||||
const STACKABLE_ABILITIES = abilities
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { faker } from "../core/faker";
|
||||
import * as showcaseNames from "../core/showcaseNames";
|
||||
import * as CalendarEventFactory from "../factories/CalendarEventFactory";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { sub } from "date-fns";
|
||||
import { FULL_GROUP_SIZE, SENDOUQ } from "~/features/sendouq/q-constants";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { faker } from "../core/faker";
|
||||
import * as SQGroupFactory from "../factories/SQGroupFactory";
|
||||
import * as SQMatchFactory from "../factories/SQMatchFactory";
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
nextNonCompletedVoting,
|
||||
rangeToMonthYear,
|
||||
} from "~/features/plus-voting/core";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
import { faker } from "../core/faker";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { db } from "~/db/sql";
|
||||
import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
|
||||
type InsertArgs = Omit<
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { db } from "~/db/sql";
|
||||
import { SENDOUQ_BEST_OF } from "~/features/sendouq/q-constants";
|
||||
import * as SQMatchRepository from "~/features/sendouq-match/SQMatchRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { actAs } from "../core/actAs";
|
||||
import { backdate } from "../core/backdate";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { UserMapModePreferences } from "~/db/tables-json";
|
||||
import * as TeamRepository from "~/features/team/TeamRepository.server";
|
||||
import { type MemberRole, TEAM } from "~/features/team/team-constants";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { actAs } from "../core/actAs";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
import * as ImageFactory from "./ImageFactory";
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
import { resolveMatchMapList } from "~/features/tournament-match/core/mapList.server";
|
||||
import { reportScore } from "~/features/tournament-match/core/reportScore.server";
|
||||
import * as TournamentMatchRepository from "~/features/tournament-match/TournamentMatchRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
import { eventDefaults } from "./CalendarEventFactory";
|
||||
import * as TournamentTeamFactory from "./TournamentTeamFactory";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Tables } from "~/db/tables";
|
||||
import * as TournamentOrganizationRepository from "~/features/tournament-organization/TournamentOrganizationRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
import * as ImageFactory from "./ImageFactory";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as LiveStreamRepository from "~/features/live-streams/LiveStreamRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
|
||||
type InsertArgs = Parameters<
|
||||
|
||||
@@ -2,7 +2,7 @@ import { addDays } from "date-fns";
|
||||
import type { MapPool } from "~/features/map-list-generator/core/map-pool";
|
||||
import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server";
|
||||
import * as TournamentLFGRepository from "~/features/tournament-lfg/TournamentLFGRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { actAs } from "../core/actAs";
|
||||
import { backdate } from "../core/backdate";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
|
||||
@@ -7,7 +7,7 @@ import { ADMIN_ID } from "~/features/admin/admin-constants";
|
||||
import * as MatchProfileRepository from "~/features/match-profile/MatchProfileRepository.server";
|
||||
import * as UserCardRepository from "~/features/user-card/UserCardRepository.server";
|
||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import {
|
||||
ORG_ADMIN_TEST_ID,
|
||||
REGULAR_USER_TEST_ID,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as XRankPlacementRepository from "~/features/top-search/XRankPlacementRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { defineFactory } from "../core/defineFactory";
|
||||
import { faker } from "../core/faker";
|
||||
import * as SplatoonFaker from "../core/SplatoonFaker";
|
||||
|
||||
@@ -7,7 +7,7 @@ import * as BuildRepository from "~/features/builds/BuildRepository.server";
|
||||
import * as XRankPlacementRepository from "~/features/top-search/XRankPlacementRepository.server";
|
||||
import * as TrophyRepository from "~/features/trophies/TrophyRepository.server";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
|
||||
/**
|
||||
* For a user switching Discord accounts: moves the new account's data onto the old user and deletes
|
||||
|
||||
@@ -3,7 +3,7 @@ import * as LeaderboardRepository from "~/features/leaderboards/LeaderboardRepos
|
||||
import * as Seasons from "~/features/mmr/core/Seasons";
|
||||
import { seasonToVotingRange } from "~/features/plus-voting/core/voting-time";
|
||||
import * as PlusVotingRepository from "~/features/plus-voting/PlusVotingRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { userIsBanned } from "../../ban/core/banned.server";
|
||||
|
||||
export async function plusTiersFromVotingAndLeaderboard() {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Readable } from "node:stream";
|
||||
import { dataUrlToImageBuffer } from "~/features/img-upload/image-bytes.server";
|
||||
import { uploadStreamToS3 } from "~/features/img-upload/s3.server";
|
||||
import { shortNanoid } from "~/utils/id";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { previewUrl } from "./art-utils";
|
||||
|
||||
const ALLOWED_ART_IMAGE_EXTENSIONS = ["png", "jpeg", "webp"] as const;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { LoaderFunctionArgs } from "react-router";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { notFoundIfNullish } from "~/utils/remix.server";
|
||||
import { articleBySlug } from "../core/bySlug.server";
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Link, useLoaderData } from "react-router";
|
||||
import { LocaleTime } from "~/components/LocaleTime";
|
||||
import { Main } from "~/components/Main";
|
||||
import { Markdown } from "~/components/Markdown";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { SendouRouteHandle } from "~/utils/remix.server";
|
||||
import {
|
||||
ARTICLES_MAIN_PAGE,
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
databaseTimestampToJavascriptTimestamp,
|
||||
dateToDatabaseTimestamp,
|
||||
} from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { AVAILABILITY } from "../availability-constants";
|
||||
import type {
|
||||
BusyBlock,
|
||||
|
||||
@@ -36,7 +36,7 @@ import { useDateTimeFormat } from "~/hooks/intl/useDateTimeFormat";
|
||||
import { useHasPermission } from "~/modules/permissions/hooks";
|
||||
import { useSearchParamsTyped } from "~/modules/search-params/hooks";
|
||||
import { databaseTimestampToDate } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { SendouRouteHandle } from "~/utils/remix.server";
|
||||
import { EVENTS_PAGE } from "~/utils/urls";
|
||||
import { action } from "../actions/t.$customUrl.schedule.server";
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { ExpressionBuilder, NotNull } from "kysely";
|
||||
import { db } from "~/db/sql";
|
||||
import type { DB, TablesInsertable } from "~/db/tables";
|
||||
import { sortBadgesByFavorites } from "~/features/user-page/core/badge-sorting.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import {
|
||||
commonUserSelect,
|
||||
jsonArrayFrom,
|
||||
|
||||
@@ -4,7 +4,7 @@ import type {
|
||||
AbilityWithUnknown,
|
||||
BuildAbilitiesTupleWithUnknown,
|
||||
} from "~/modules/in-game-lists/types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { MAIN_SLOT_AP, SUB_SLOT_AP } from "../analyzer-constants";
|
||||
import type { AbilityPoints } from "../analyzer-types";
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
TORPEDO_ID,
|
||||
ZIPCASTER_ID,
|
||||
} from "~/modules/in-game-lists/weapon-ids";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { cutToNDecimalPlaces, roundToNDecimalPlaces } from "~/utils/number";
|
||||
import { assertUnreachable } from "~/utils/types";
|
||||
import {
|
||||
|
||||
@@ -5,7 +5,7 @@ import type {
|
||||
SpecialWeaponId,
|
||||
} from "~/modules/in-game-lists/types";
|
||||
import { weaponIdToBaseWeaponId } from "~/modules/in-game-lists/weapon-ids";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { Unpacked } from "~/utils/types";
|
||||
import type {
|
||||
AbilityPoints,
|
||||
|
||||
@@ -7,7 +7,7 @@ import { Link } from "react-router";
|
||||
import * as R from "remeda";
|
||||
import { AbilitiesSelector } from "~/components/AbilitiesSelector";
|
||||
import { Ability } from "~/components/Ability";
|
||||
import Chart from "~/components/Chart";
|
||||
import { Chart } from "~/components/Chart";
|
||||
import { SendouSwitch } from "~/components/elements/Switch";
|
||||
import {
|
||||
SendouTab,
|
||||
@@ -45,7 +45,7 @@ import {
|
||||
TOXIC_MIST_ID,
|
||||
} from "~/modules/in-game-lists/weapon-ids";
|
||||
import { nullFilledArray } from "~/utils/arrays";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { logger } from "~/utils/logger";
|
||||
import type { SendouRouteHandle } from "~/utils/remix.server";
|
||||
import {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { abilities } from "~/modules/in-game-lists/abilities";
|
||||
import type { Ability } from "~/modules/in-game-lists/types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { roundToNDecimalPlaces } from "~/utils/number";
|
||||
import { MAX_AP } from "../build-analyzer/analyzer-constants";
|
||||
import { isStackableAbility } from "../build-analyzer/core/ability-points";
|
||||
|
||||
@@ -11,7 +11,7 @@ import type {
|
||||
import { canonicalWeaponSplId } from "~/modules/in-game-lists/weapon-ids";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import { LimitReachedError } from "~/utils/errors";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { commonUserJsonObject, jsonArrayFrom } from "~/utils/kysely.server";
|
||||
import { MAIN_SLOT_AP } from "../build-analyzer/analyzer-constants";
|
||||
import {
|
||||
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
databaseTimestampToJavascriptTimestamp,
|
||||
dateToDatabaseTimestamp,
|
||||
} from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import {
|
||||
commonUserSelect,
|
||||
concatUserSubmittedImagePrefix,
|
||||
|
||||
@@ -5,7 +5,7 @@ import * as TournamentFactory from "~/db/seed/factories/TournamentFactory";
|
||||
import * as TournamentOrganizationFactory from "~/db/seed/factories/TournamentOrganizationFactory";
|
||||
import * as UserFactory from "~/db/seed/factories/UserFactory";
|
||||
import * as CalendarRepository from "~/features/calendar/CalendarRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { wrappedAction } from "~/utils/Test";
|
||||
import type { calendarNewSchemaServer } from "../calendar-new-schemas.server";
|
||||
import { defaultBracketsFormValues } from "../calendar-progression-form";
|
||||
|
||||
@@ -5,7 +5,7 @@ import * as ChatRoomFactory from "~/db/seed/factories/ChatRoomFactory";
|
||||
import * as SQGroupFactory from "~/db/seed/factories/SQGroupFactory";
|
||||
import * as UserFactory from "~/db/seed/factories/UserFactory";
|
||||
import { db } from "~/db/sql";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import * as ChatRepository from "./ChatRepository.server";
|
||||
|
||||
const users = UserFactory.pool();
|
||||
|
||||
@@ -12,7 +12,7 @@ import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server"
|
||||
import * as TournamentRepository from "~/features/tournament/TournamentRepository.server";
|
||||
import { hasPermission } from "~/modules/permissions/utils";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import * as ChatRepository from "./ChatRepository.server";
|
||||
import * as ChatRoomResolver from "./ChatRoomResolver.server";
|
||||
import { setupSqMatch } from "./tests/fixtures";
|
||||
|
||||
@@ -2,7 +2,7 @@ import * as R from "remeda";
|
||||
import { actorIdOrNullSafe } from "~/features/auth/core/user.server";
|
||||
import * as EventBus from "~/features/events/core/EventBus.server";
|
||||
import { chatRoomChannel, userChannel } from "~/features/events/events-types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { logger } from "~/utils/logger";
|
||||
import * as ChatRepository from "./ChatRepository.server";
|
||||
import * as ChatRoomResolver from "./ChatRoomResolver.server";
|
||||
|
||||
@@ -3,7 +3,7 @@ import { requireUser } from "~/features/auth/core/user.server";
|
||||
import * as EventBus from "~/features/events/core/EventBus.server";
|
||||
import { chatRoomChannel, userChannel } from "~/features/events/events-types";
|
||||
import { parseFormData } from "~/form/parse.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { badRequestIfFalsy, parseParams } from "~/utils/remix.server";
|
||||
import { idObject } from "~/utils/schema";
|
||||
import * as ChatRepository from "../ChatRepository.server";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { ActionFunctionArgs } from "react-router";
|
||||
import * as v from "valibot";
|
||||
import { requireUser } from "~/features/auth/core/user.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { parseRequestPayload } from "~/utils/remix.server";
|
||||
import * as SseConnections from "../core/SseConnections.server";
|
||||
import * as TopicAccess from "../core/TopicAccess.server";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
|
||||
export type ImageExtension = "webp" | "png" | "jpeg";
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { AuthenticatedUser } from "~/features/auth/core/user.server";
|
||||
import type { ImageFieldValue } from "~/form/image-field";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import { shortNanoid } from "~/utils/id";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { errorToastIfFalsy } from "~/utils/remix.server";
|
||||
import * as ImageRepository from "./ImageRepository.server";
|
||||
import { dataUrlToImageBuffer } from "./image-bytes.server";
|
||||
|
||||
@@ -2,7 +2,7 @@ import clsx from "clsx";
|
||||
import { Flag } from "~/components/Flag";
|
||||
import { Image } from "~/components/Image";
|
||||
import { Placement } from "~/components/Placement";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { winnersImageUrl } from "~/utils/urls";
|
||||
import playerData from "../top-ten.json";
|
||||
import styles from "./TopTenPlayer.module.css";
|
||||
|
||||
@@ -5,7 +5,7 @@ import type {
|
||||
ModeWithStage,
|
||||
StageId,
|
||||
} from "~/modules/in-game-lists/types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { err, ok, unwrapOr } from "~/utils/result";
|
||||
import type { MapPool } from "./map-pool";
|
||||
import type { ReadonlyMapPoolObject } from "./map-pool-serializer/types";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { modesShort } from "../../../../modules/in-game-lists/modes";
|
||||
import { stageIds } from "../../../../modules/in-game-lists/stage-ids";
|
||||
import type { StageId } from "../../../../modules/in-game-lists/types";
|
||||
|
||||
@@ -12,7 +12,7 @@ import { useCopyToClipboard } from "~/hooks/useCopyToClipboard";
|
||||
import { stageIds } from "~/modules/in-game-lists/stage-ids";
|
||||
import type { ModeWithStage } from "~/modules/in-game-lists/types";
|
||||
import { useSearchParamsTyped } from "~/modules/search-params/hooks";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { metaTags, ogPageImage } from "~/utils/remix";
|
||||
import type { SendouRouteHandle } from "~/utils/remix.server";
|
||||
import { ipLabsMaps, MAPS_URL, navIconUrl } from "~/utils/urls";
|
||||
|
||||
@@ -91,7 +91,7 @@ const TLDRAW_OPTIONS: Partial<TldrawOptions> = {
|
||||
const MAIN_WEAPON_URL_PATTERN = /main-weapons-outlined\/(\d+)/;
|
||||
const SPECIAL_WEAPON_URL_PATTERN = /special-weapons\/(\d+)/;
|
||||
|
||||
export default function Planner() {
|
||||
export function Planner() {
|
||||
const { t, i18n } = useTranslation(["common"]);
|
||||
const { htmlThemeClass } = useTheme();
|
||||
|
||||
|
||||
@@ -28,7 +28,11 @@ export const handle: SendouRouteHandle = {
|
||||
}),
|
||||
};
|
||||
|
||||
const Planner = lazy(() => import("~/features/map-planner/components/Planner"));
|
||||
const Planner = lazy(() =>
|
||||
import("~/features/map-planner/components/Planner").then((module) => ({
|
||||
default: module.Planner,
|
||||
})),
|
||||
);
|
||||
|
||||
export default function MapPlannerPage() {
|
||||
const isHydrated = useHydrated();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { rating } from "openskill";
|
||||
import type { Tables } from "~/db/tables";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { identifierToUserIds, type SkillTeamIdentifier } from "./mmr-utils";
|
||||
import * as SkillRepository from "./SkillRepository.server";
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
rating,
|
||||
type Team,
|
||||
} from "openskill";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { TierName } from "./mmr-constants";
|
||||
import { SP_BASE, SP_PER_ORDINAL, TIERS } from "./mmr-constants";
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ vi.mock("./webPush.server", () => ({
|
||||
get webPushEnabled() {
|
||||
return mockWebPushEnabled.value;
|
||||
},
|
||||
default: {
|
||||
webPush: {
|
||||
sendNotification: mockSendNotification,
|
||||
},
|
||||
}));
|
||||
|
||||
@@ -10,7 +10,7 @@ import { logger } from "../../../utils/logger";
|
||||
import * as NotificationRepository from "../NotificationRepository.server";
|
||||
import type { Notification } from "../notifications-types";
|
||||
import { notificationLink, notificationMeta } from "../notifications-utils";
|
||||
import webPush, { webPushEnabled } from "./webPush.server";
|
||||
import { webPush, webPushEnabled } from "./webPush.server";
|
||||
|
||||
const NOTIFICATION_URGENCY: Record<Notification["type"], Urgency> = {
|
||||
SQ_ADDED_TO_GROUP: "high",
|
||||
|
||||
@@ -20,4 +20,4 @@ if (
|
||||
logger.info("VAPID env vars not set, push notifications will not work");
|
||||
}
|
||||
|
||||
export default webPush;
|
||||
export { webPush };
|
||||
|
||||
@@ -12,7 +12,7 @@ import type {
|
||||
SubWeaponId,
|
||||
} from "~/modules/in-game-lists/types";
|
||||
import { weaponIdToBaseWeaponId } from "~/modules/in-game-lists/weapon-ids";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { roundToNDecimalPlaces } from "~/utils/number";
|
||||
import {
|
||||
DAMAGE_RECEIVERS,
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
CRAB_TANK_ID,
|
||||
SPLASH_WALL_ID,
|
||||
} from "~/modules/in-game-lists/weapon-ids";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { HitPoints } from "../calculator-types";
|
||||
|
||||
const WAVE_BREAKER_HP = 480;
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
} from "~/features/plus-voting/core";
|
||||
import { parseFormData } from "~/form/parse.server";
|
||||
import { requirePermission } from "~/modules/permissions/guards.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { badRequestIfFalsy } from "~/utils/remix.server";
|
||||
import { assertUnreachable } from "~/utils/types";
|
||||
import { suggestionActionSchema } from "../plus-suggestions-schemas";
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
nextNonCompletedVoting,
|
||||
rangeToMonthYear,
|
||||
} from "~/features/plus-voting/core";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { commonUserSelect } from "~/utils/kysely.server";
|
||||
import type { Unwrapped } from "~/utils/types";
|
||||
import * as PlusVoting from "./core/PlusVoting";
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
import { isVotingOpen } from "~/features/plus-voting/core/voting-time";
|
||||
import * as PlusVotingRepository from "~/features/plus-voting/PlusVotingRepository.server";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { badRequestIfFalsy, parseRequestPayload } from "~/utils/remix.server";
|
||||
import { PLUS_UPVOTE } from "../plus-voting-constants";
|
||||
import { votingActionSchema } from "../plus-voting-schemas";
|
||||
|
||||
@@ -2,7 +2,7 @@ import * as React from "react";
|
||||
import type { Tables } from "~/db/tables";
|
||||
import type * as PlusVotingRepository from "~/features/plus-voting/PlusVotingRepository.server";
|
||||
import { useHydrated } from "~/hooks/useHydrated";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { logger } from "~/utils/logger";
|
||||
import { PLUS_DOWNVOTE, PLUS_UPVOTE } from "../plus-voting-constants";
|
||||
import type { PlusVoteFromFE } from "./types";
|
||||
|
||||
@@ -2,7 +2,7 @@ import { getUser } from "~/features/auth/core/user.server";
|
||||
import { lastCompletedVoting } from "~/features/plus-voting/core";
|
||||
import * as PlusVotingRepository from "~/features/plus-voting/PlusVotingRepository.server";
|
||||
import { isSupporter } from "~/modules/permissions/utils";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { UserWithPlusTier } from "~/utils/kysely.server";
|
||||
import { roundToNDecimalPlaces } from "~/utils/number";
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import type {
|
||||
StageId,
|
||||
} from "~/modules/in-game-lists/types";
|
||||
import { databaseTimestampToJavascriptTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { wrappedAction, wrappedLoader } from "~/utils/Test";
|
||||
import { action } from "../actions/scanner-ingest.server";
|
||||
import type {
|
||||
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
} from "../core/detectors/death/index";
|
||||
import { SCOREBOARD_EVENT_TYPE } from "../core/detectors/scoreboard/index";
|
||||
import type { DetectedEvent } from "../core/detectors/types";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
const GRID_A: AbilityWithUnknown[][] = [
|
||||
["ISM", "ISM", "ISM", "ISM"],
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
type BannerScoreRead,
|
||||
resolveMatchScores,
|
||||
} from "../core/detectors/scoreboard/banner";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
function read(value: number | null, confidence = 0.9): BannerScoreRead {
|
||||
return {
|
||||
|
||||
@@ -13,7 +13,7 @@ import type {
|
||||
} from "../../core/detectors/minimap/index";
|
||||
import { SPECTATOR_SLOTS } from "../../core/detectors/minimap/rois";
|
||||
import type { DetectedEvent } from "../../core/detectors/types";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
const ALPHA: MainWeaponId[] = [40, 1001, 2010, 3030];
|
||||
const BRAVO: MainWeaponId[] = [50, 210, 4010, 8000];
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import assert from "node:assert/strict";
|
||||
import { frameEvictionIndex } from "../../worker/frame-queue";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
test("evicts the oldest of a backlog too short to thin", () => {
|
||||
assert.equal(frameEvictionIndex([]), 0);
|
||||
|
||||
@@ -25,7 +25,7 @@ import {
|
||||
invalidObjectiveEvents,
|
||||
} from "../../core/match-builder";
|
||||
import type { ScannerLobby } from "../../scanner-types";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
const NAMES = ["w1", "w2", "w3", "w4", "l1", "l2", "l3", "l4"];
|
||||
const ALPHA: MainWeaponId[] = [40, 1001, 2010, 3030];
|
||||
|
||||
@@ -4,7 +4,7 @@ import type {
|
||||
ScannerMatch,
|
||||
ScannerMatchPlayer,
|
||||
} from "../../core/scanner-match";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
const TEAM_A = ["Sendou", "Kiver", "Brian", "Zed"];
|
||||
const TEAM_B = ["Gos", "Noah", "Alice", "Bob"];
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
DetectorScheduler,
|
||||
type SchedulingInfo,
|
||||
} from "../../core/detectors/scheduler";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
const OPTS = {
|
||||
refineIntervalS: 0.1,
|
||||
|
||||
@@ -19,7 +19,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const resources = await loadScoreboardResources();
|
||||
|
||||
@@ -23,7 +23,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const resources = await loadScoreboardResources();
|
||||
|
||||
@@ -17,7 +17,7 @@ export interface CompatTestContext {
|
||||
): Promise<void>;
|
||||
}
|
||||
|
||||
export default function test(
|
||||
export function test(
|
||||
name: string,
|
||||
fn: (t: CompatTestContext) => void | Promise<void>,
|
||||
): void {
|
||||
|
||||
@@ -25,7 +25,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const resources = await loadScoreboardResources();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { loadOpenCV, minMaxLoc } from "../core/cv";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
test("opencv.js loads in Node and matchTemplate works", async () => {
|
||||
const cv = await loadOpenCV();
|
||||
|
||||
@@ -27,7 +27,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const resources = await loadScoreboardResources();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { parseReplayTimestamp } from "../core/replay-time";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
/** Expected epoch for a local wall time — timezone-independent comparison. */
|
||||
function local(
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const detector = createScoreboardBattleLogDetector(
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const resources = await loadScoreboardResources();
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const detector = createScoreboardDetector(await loadScoreboardResources());
|
||||
|
||||
@@ -5,7 +5,7 @@ import { sendouUpload } from "../components/sendou-upload";
|
||||
import type { MinimapData } from "../core/detectors/minimap/index";
|
||||
import type { ScoreboardData } from "../core/detectors/scoreboard/index";
|
||||
import type { DetectedEvent } from "../core/detectors/types";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
const ALPHA: MainWeaponId[] = [40, 1001, 2010, 3030];
|
||||
const BRAVO: MainWeaponId[] = [50, 210, 4010, 8000];
|
||||
|
||||
@@ -24,7 +24,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../node/fixtures";
|
||||
import { loadScoreboardResources } from "../node/resources";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
await loadOpenCV();
|
||||
const resources = await loadScoreboardResources();
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../../node/fixtures";
|
||||
import { loadScoreboardResources } from "../../node/resources";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
export async function runDeathSuite(
|
||||
shard: number,
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
runDetectorOnFixture,
|
||||
} from "../../node/fixtures";
|
||||
import { loadScoreboardResources } from "../../node/resources";
|
||||
import test from "../node-test-compat";
|
||||
import { test } from "../node-test-compat";
|
||||
|
||||
export async function runScoreboardBattleLogReplaySuite(
|
||||
shard: number,
|
||||
|
||||
@@ -2,7 +2,7 @@ import assert from "node:assert/strict";
|
||||
import type { ScoreboardData } from "../core/detectors/scoreboard/index";
|
||||
import type { DetectedEvent } from "../core/detectors/types";
|
||||
import { TimelineBuilder } from "../core/timeline/index";
|
||||
import test from "./node-test-compat";
|
||||
import { test } from "./node-test-compat";
|
||||
|
||||
function event(
|
||||
t: number,
|
||||
|
||||
@@ -21,7 +21,7 @@ import {
|
||||
tournamentLogoWithDefault,
|
||||
} from "~/utils/kysely.server";
|
||||
import { db } from "../../db/sql";
|
||||
import invariant from "../../utils/invariant";
|
||||
import { invariant } from "../../utils/invariant";
|
||||
import type { Unwrapped } from "../../utils/types";
|
||||
import type { AssociationVisibility } from "../associations/associations-types";
|
||||
import * as Scrim from "./core/Scrim";
|
||||
|
||||
@@ -6,7 +6,7 @@ import { userIsBanned } from "~/features/ban/core/banned.server";
|
||||
import * as UserRepository from "~/features/user-page/UserRepository.server";
|
||||
import { parseFormData } from "~/form/parse.server";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { errorToast, errorToastIfFalsy } from "~/utils/remix.server";
|
||||
import { toDBBoolean } from "~/utils/sql";
|
||||
import { scrimsPage } from "~/utils/urls";
|
||||
|
||||
@@ -22,7 +22,7 @@ import { FormWithConfirm } from "~/components/FormWithConfirm";
|
||||
import { ModeImage } from "~/components/Image";
|
||||
import { LocaleTime } from "~/components/LocaleTime";
|
||||
import { NoteAvatar } from "~/components/NoteAvatar";
|
||||
import TimePopover from "~/components/TimePopover";
|
||||
import { TimePopover } from "~/components/TimePopover";
|
||||
import { useUser } from "~/features/auth/core/user";
|
||||
import {
|
||||
UserCard,
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server";
|
||||
import * as TournamentRepository from "~/features/tournament/TournamentRepository.server";
|
||||
import type { TournamentSummary } from "~/features/tournament-bracket/core/summarizer.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { withUserId } from "~/utils/Test";
|
||||
import * as SQMatchRepository from "./SQMatchRepository.server";
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import {
|
||||
databaseTimestampToDate,
|
||||
dateToDatabaseTimestamp,
|
||||
} from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import {
|
||||
commonUserSelect,
|
||||
concatUserSubmittedImagePrefix,
|
||||
|
||||
@@ -19,7 +19,7 @@ import { useUser } from "~/features/auth/core/user";
|
||||
import { SENDOUQ_BEST_OF } from "~/features/sendouq/q-constants";
|
||||
import { useAutoRerender } from "~/hooks/useAutoRerender";
|
||||
import { databaseTimestampToDate } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { resolveGroupNames } from "../core/match-timeline";
|
||||
import * as SendouQMatch from "../core/SendouQMatch";
|
||||
import type { SendouQMatchLoaderData } from "../loaders/q.match.$id.server";
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
userPageLink,
|
||||
type WebhookUser,
|
||||
} from "~/modules/discord-webhook.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { SENDOU_INK_BASE_URL, sendouQMatchPage } from "~/utils/urls";
|
||||
|
||||
type MatchMember = WebhookUser & { id: number };
|
||||
|
||||
@@ -10,7 +10,7 @@ import * as TeamFactory from "~/db/seed/factories/TeamFactory";
|
||||
import * as UserFactory from "~/db/seed/factories/UserFactory";
|
||||
import { db } from "~/db/sql";
|
||||
import * as GroupMatchContinueVoteRepository from "~/features/sendouq-match/GroupMatchContinueVoteRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { FULL_GROUP_SIZE } from "./q-constants";
|
||||
import * as SQGroupRepository from "./SQGroupRepository.server";
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
} from "~/features/mmr/tiered.server";
|
||||
import * as SQMatchRepository from "~/features/sendouq-match/SQMatchRepository.server";
|
||||
import type { ModeShort, StageId } from "~/modules/in-game-lists/types";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import * as SQGroupRepository from "../SQGroupRepository.server";
|
||||
import { refreshSendouQInstance, SendouQ } from "./SendouQ.server";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { TIERS } from "~/features/mmr/mmr-constants";
|
||||
import type { TieredSkill } from "~/features/mmr/tiered.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import type { TierDifference } from "../q-types";
|
||||
|
||||
const allTiersOrdered = TIERS.flatMap((tier) => [
|
||||
|
||||
@@ -12,7 +12,7 @@ import * as UserFactory from "~/db/seed/factories/UserFactory";
|
||||
import { db } from "~/db/sql";
|
||||
import * as ChatSystemMessage from "~/features/chat/ChatSystemMessage.server";
|
||||
import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import {
|
||||
FULL_GROUP_SIZE,
|
||||
SENDOUQ,
|
||||
|
||||
@@ -13,7 +13,7 @@ import * as Seasons from "~/features/mmr/core/Seasons";
|
||||
import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server";
|
||||
import { stageIds } from "~/modules/in-game-lists/stage-ids";
|
||||
import { dateToDatabaseTimestamp } from "~/utils/dates";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { wrappedAction } from "~/utils/Test";
|
||||
import * as ReadyCheck from "../core/ready-check.server";
|
||||
import { refreshSendouQInstance } from "../core/SendouQ.server";
|
||||
|
||||
@@ -11,7 +11,7 @@ import * as SQGroupFactory from "~/db/seed/factories/SQGroupFactory";
|
||||
import * as UserFactory from "~/db/seed/factories/UserFactory";
|
||||
import * as Seasons from "~/features/mmr/core/Seasons";
|
||||
import * as SQGroupRepository from "~/features/sendouq/SQGroupRepository.server";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import { wrappedAction, wrappedLoader } from "~/utils/Test";
|
||||
import { SENDOUQ_LOOKING_PAGE } from "~/utils/urls";
|
||||
import * as ReadyCheck from "../core/ready-check.server";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { afterAll, beforeAll, vi } from "vitest";
|
||||
import * as Seasons from "~/features/mmr/core/Seasons";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
|
||||
const startedSeasons = Seasons.list.filter(
|
||||
(season) => season.starts.getTime() <= Date.now(),
|
||||
|
||||
@@ -9,7 +9,7 @@ import { NON_PLAYER_TEAM_ROLES } from "~/features/team/team-constants";
|
||||
import { subsOfResult } from "~/features/team/team-utils";
|
||||
import { databaseTimestampNow } from "~/utils/dates";
|
||||
import { shortNanoid } from "~/utils/id";
|
||||
import invariant from "~/utils/invariant";
|
||||
import { invariant } from "~/utils/invariant";
|
||||
import {
|
||||
commonUserSelect,
|
||||
concatUserSubmittedImagePrefix,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user