aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-03-01 16:15:37 -0800
committerFuwn <[email protected]>2026-03-01 16:16:50 -0800
commit5e930243be42cb79dc72ee66f12578074e670120 (patch)
treeb11e4504c9ee66c9ed33217d8339f8e61cabcf57 /src
parentchore(biome): enable svelte linting (diff)
downloaddue.moe-5e930243be42cb79dc72ee66f12578074e670120.tar.xz
due.moe-5e930243be42cb79dc72ee66f12578074e670120.zip
chore(biome): re-enable noImplicitAnyLet rule
Diffstat (limited to 'src')
-rw-r--r--src/lib/Data/AniList/activity.ts2
-rw-r--r--src/lib/Data/AniList/media.ts4
-rw-r--r--src/lib/Data/AniList/wrapped.ts4
-rw-r--r--src/lib/Database/SB/badges.ts3
-rw-r--r--src/lib/Media/Anime/Airing/Subtitled/match.ts2
-rw-r--r--src/lib/Schedule/Days.svelte3
-rw-r--r--src/lib/Tools/Hayai.svelte2
-rw-r--r--src/routes/+layout.svelte3
-rw-r--r--src/routes/+page.svelte3
-rw-r--r--src/routes/completed/+page.svelte3
-rw-r--r--src/routes/events/group/[group]/+page.svelte3
-rw-r--r--src/routes/girls/[language]/+page.svelte3
-rw-r--r--src/routes/hololive/[[stream]]/+page.svelte3
-rw-r--r--src/routes/schedule/+page.svelte3
-rw-r--r--src/routes/settings/+page.svelte3
-rw-r--r--src/routes/tools/[tool]/+page.svelte3
-rw-r--r--src/routes/user/[user]/+page.svelte3
-rw-r--r--src/routes/user/[user]/badges/+page.svelte3
18 files changed, 33 insertions, 20 deletions
diff --git a/src/lib/Data/AniList/activity.ts b/src/lib/Data/AniList/activity.ts
index afe3cef3..9a8d13ba 100644
--- a/src/lib/Data/AniList/activity.ts
+++ b/src/lib/Data/AniList/activity.ts
@@ -190,7 +190,7 @@ export const fullActivityHistory = async (
const activities = [];
let page = 1;
let currentDatabasePage = await database.activities.get(page);
- let currentPage;
+ let currentPage: ActivitiesPage;
if (currentDatabasePage) currentPage = currentDatabasePage.data;
else {
diff --git a/src/lib/Data/AniList/media.ts b/src/lib/Data/AniList/media.ts
index 68f9fc9b..2fbbe3f9 100644
--- a/src/lib/Data/AniList/media.ts
+++ b/src/lib/Data/AniList/media.ts
@@ -230,7 +230,7 @@ export const mediaListCollection = async (
const options = assignDefaultOptions(inputOptions);
- let currentCacheMinutes;
+ let currentCacheMinutes = 0;
settings.subscribe((value) => (currentCacheMinutes = value.cacheMinutes));
@@ -393,7 +393,7 @@ export const recentMediaActivities = async (
guesses.sort((a, b) => b - a);
if (guesses.length) {
- let bestGuess;
+ let bestGuess: number;
switch (method) {
case 'median':
diff --git a/src/lib/Data/AniList/wrapped.ts b/src/lib/Data/AniList/wrapped.ts
index 781d8e7f..9db502b2 100644
--- a/src/lib/Data/AniList/wrapped.ts
+++ b/src/lib/Data/AniList/wrapped.ts
@@ -278,7 +278,7 @@ export const tops = (
genres = genres.slice(0, amount);
tags = tags.slice(0, amount);
- let topGenreMedia;
+ let topGenreMedia: Media;
try {
topGenreMedia = media.find((m) => m.genres.includes(genres[0].genre)) || media[0];
@@ -286,7 +286,7 @@ export const tops = (
topGenreMedia = media[0];
}
- let topTagMedia;
+ let topTagMedia: Media;
try {
topTagMedia = media.find((m) => m.tags.some((tag) => tag.name === tags[0].tag)) || media[0];
diff --git a/src/lib/Database/SB/badges.ts b/src/lib/Database/SB/badges.ts
index b710eb86..27f8d13c 100644
--- a/src/lib/Database/SB/badges.ts
+++ b/src/lib/Database/SB/badges.ts
@@ -24,7 +24,8 @@ interface GetBy {
}
export const getBadges = async (getBy?: GetBy) => {
- let data, error;
+ let data: unknown[] | null = null;
+ let error: unknown = null;
if (getBy?.event) [data, error] = await sb.from('badges').select('*').eq('event', getBy.event);
else if (getBy?.group)
diff --git a/src/lib/Media/Anime/Airing/Subtitled/match.ts b/src/lib/Media/Anime/Airing/Subtitled/match.ts
index e83c30b6..0570b7f9 100644
--- a/src/lib/Media/Anime/Airing/Subtitled/match.ts
+++ b/src/lib/Media/Anime/Airing/Subtitled/match.ts
@@ -463,7 +463,7 @@ export const injectAiringTime = (anime: Media, subsPlease: SubsPlease | null) =>
// ? Math.round((airingAt - Date.now() / 1000) * 100) / 100
// : undefined;
const nativeTime = new Date(airingAt ? airingAt * 1000 : 0);
- let untilAiring;
+ let untilAiring: number | undefined;
let time = new Date(airingAt ? airingAt * 1000 : 0);
let nextEpisode = anime.nextAiringEpisode?.episode || 0;
diff --git a/src/lib/Schedule/Days.svelte b/src/lib/Schedule/Days.svelte
index 6a2b2da6..ed0ee4d9 100644
--- a/src/lib/Schedule/Days.svelte
+++ b/src/lib/Schedule/Days.svelte
@@ -1,5 +1,6 @@
<script lang="ts">
import { browser } from '$app/environment';
+import type { AniListAuthorisation } from '$lib/Data/AniList/identity';
import { mediaListCollection, Type, type Media } from '$lib/Data/AniList/media';
import { findClosestMedia } from '$lib/Media/Anime/Airing/Subtitled/match';
import type { SubsPlease, SubsPleaseEpisode } from '$lib/Media/Anime/Airing/Subtitled/subsPlease';
@@ -21,7 +22,7 @@ import RateLimitedError from '$lib/Error/RateLimited.svelte';
export let subsPlease: SubsPlease;
export let scheduledMedia: Partial<Media[]>;
export let forceListMode = false;
-export let user;
+export let user: AniListAuthorisation | undefined;
const urlParameters = browser ? new URLSearchParams(window.location.search) : null;
let day: string | null = parseOrDefault(urlParameters, 'day', null);
diff --git a/src/lib/Tools/Hayai.svelte b/src/lib/Tools/Hayai.svelte
index aa1112da..4de60a9b 100644
--- a/src/lib/Tools/Hayai.svelte
+++ b/src/lib/Tools/Hayai.svelte
@@ -51,7 +51,7 @@ const applyBionicReadingToString = (text: string) =>
.map((word) => {
if (/^\W+$/.test(word) || word.length <= 2) return word;
- let boldLength;
+ let boldLength: number;
if (word.length <= 4) {
boldLength = 2;
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 724a41c2..5826f40c 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -36,11 +36,12 @@ import { toolsAsCommandPaletteActions } from '$lib/Tools/tools';
import localforage from 'localforage';
import { dev } from '$app/environment';
import { injectAnalytics } from '@vercel/analytics/sveltekit';
+import type { LayoutData } from './$types';
injectSpeedInsights();
injectAnalytics({ mode: dev ? 'development' : 'production' });
-export let data;
+export let data: LayoutData;
let isHeaderVisible = true;
let previousScrollPosition = 0;
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index efe6e164..647a7ded 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -15,8 +15,9 @@ import Landing from '$lib/Landing.svelte';
import LandingHero from '$lib/LandingHero.svelte';
import IndexColumn from '$lib/List/Anime/DueIndexColumn.svelte';
import stateBin from '$stores/stateBin.js';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
let removeHeightObserver: (() => void) | undefined;
diff --git a/src/routes/completed/+page.svelte b/src/routes/completed/+page.svelte
index d0c8b87d..323d28f5 100644
--- a/src/routes/completed/+page.svelte
+++ b/src/routes/completed/+page.svelte
@@ -13,8 +13,9 @@ import Skeleton from '$lib/Loading/Skeleton.svelte';
import locale from '$stores/locale.js';
import Landing from '$lib/Landing.svelte';
import stateBin from '$stores/stateBin.js';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
let removeHeightObserver: (() => void) | undefined;
diff --git a/src/routes/events/group/[group]/+page.svelte b/src/routes/events/group/[group]/+page.svelte
index 6f0be2da..05918625 100644
--- a/src/routes/events/group/[group]/+page.svelte
+++ b/src/routes/events/group/[group]/+page.svelte
@@ -7,8 +7,9 @@ import root from '$lib/Utility/root';
import { onMount } from 'svelte';
import Group from '$lib/Events/Group.svelte';
import Event from '$lib/Events/Event.svelte';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
let groupsResponse: Promise<Response>;
diff --git a/src/routes/girls/[language]/+page.svelte b/src/routes/girls/[language]/+page.svelte
index 8cc0202f..225ffdf9 100644
--- a/src/routes/girls/[language]/+page.svelte
+++ b/src/routes/girls/[language]/+page.svelte
@@ -3,8 +3,9 @@ import Senpy from '$lib/Data/senpy';
import Message from '$lib/Loading/Message.svelte';
import Skeleton from '$lib/Loading/Skeleton.svelte';
import '$styles/girls.scss';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
</script>
<div class="card">
diff --git a/src/routes/hololive/[[stream]]/+page.svelte b/src/routes/hololive/[[stream]]/+page.svelte
index 0588552f..8f19f8b1 100644
--- a/src/routes/hololive/[[stream]]/+page.svelte
+++ b/src/routes/hololive/[[stream]]/+page.svelte
@@ -10,8 +10,9 @@ import root from '$lib/Utility/root';
import identity from '$stores/identity';
import Lives from '$lib/Hololive/Lives.svelte';
import { typeSchedule } from '$lib/Hololive/hololive';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
let schedulePromise: Promise<Response>;
let pinnedStreams: string[] = [];
diff --git a/src/routes/schedule/+page.svelte b/src/routes/schedule/+page.svelte
index ff83d895..dcd2810d 100644
--- a/src/routes/schedule/+page.svelte
+++ b/src/routes/schedule/+page.svelte
@@ -13,8 +13,9 @@ import Days from '$lib/Schedule/Days.svelte';
import Skeleton from '$lib/Loading/Skeleton.svelte';
import Message from '$lib/Loading/Message.svelte';
import subsPlease from '$stores/subsPlease';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
let scheduledMediaPromise: Promise<Partial<Media[]>>;
const urlParameters = browser ? new URLSearchParams(window.location.search) : null;
diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte
index 472f6e8c..bb7c71bf 100644
--- a/src/routes/settings/+page.svelte
+++ b/src/routes/settings/+page.svelte
@@ -15,8 +15,9 @@ import settings from '$stores/settings';
import LogInRestricted from '$lib/Error/LogInRestricted.svelte';
import SettingSync from '$lib/Settings/Categories/SettingSync.svelte';
import RssFeeds from '$lib/Settings/Categories/RSSFeeds.svelte';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
// const pruneUnresolved = async () => {
// const unresolved = await chapterDatabase.chapters.where('chapters').equals(-1).toArray();
diff --git a/src/routes/tools/[tool]/+page.svelte b/src/routes/tools/[tool]/+page.svelte
index f106d5b2..bd4bcc74 100644
--- a/src/routes/tools/[tool]/+page.svelte
+++ b/src/routes/tools/[tool]/+page.svelte
@@ -20,8 +20,9 @@ import Popup from '$lib/Layout/Popup.svelte';
import SequelCatcher from '$lib/Tools/SequelCatcher/Tool.svelte';
import Tracker from '$lib/Tools/Tracker/Tool.svelte';
import BirthdaysTemplate from '$lib/Tools/BirthdaysTemplate.svelte';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
let tool = data.tool ?? 'default';
diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte
index dd9d753e..536d02e5 100644
--- a/src/routes/user/[user]/+page.svelte
+++ b/src/routes/user/[user]/+page.svelte
@@ -22,8 +22,9 @@ import SvelteMarkdown from '@humanspeak/svelte-markdown';
import MarkdownLink from '$lib/MarkdownLink.svelte';
import LinkedTooltip from '$lib/Tooltip/LinkedTooltip.svelte';
import { graphql } from '$houdini';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
$: ({ Profile } = data);
$: preferences = $Profile.fetching
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index cdb0ca9b..4a5106aa 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -25,8 +25,9 @@ import type { IndexedBadge } from '$lib/User/BadgeWall/badge';
import { graphql } from '$houdini';
import type { Preferences } from '../../../../graphql/$types';
import localforage from 'localforage';
+import type { PageData } from './$types';
-export let data;
+export let data: PageData;
$: ({ BadgeWallUser } = data);
$: preferences = $BadgeWallUser.fetching