chore(web): cleanup promise handling (#7382)

* no-misused-promises

* no-floating-promises

* format

* revert for now

* remove load function

* require-await

* revert a few no-floating-promises changes that would cause no-misused-promises failures

* format

* fix a few more

* fix most remaining errors

* executor-queue

* executor-queue.spec

* remove duplicate comments by grouping rules

* upgrade sveltekit and enforce rules

* oops. move await

* try this

* just ignore for now since it's only a test

* run in parallel

* Update web/src/routes/admin/jobs-status/+page.svelte

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* remove Promise.resolve call

* rename function

* remove unnecessary warning silencing

* make handleError sync

* fix new errors from recently merged PR to main

* extract method

* use handlePromiseError

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Ben McCann
2024-02-27 08:37:37 -08:00
committed by GitHub
parent 57f25855d3
commit 907a95a746
70 changed files with 312 additions and 282 deletions

View File

@@ -2,6 +2,6 @@ import { AppRoute } from '$lib/constants';
import { redirect } from '@sveltejs/kit';
import type { PageLoad } from './$types';
export const load = (async () => {
export const load = (() => {
redirect(302, AppRoute.ADMIN_USER_MANAGEMENT);
}) satisfies PageLoad;

View File

@@ -4,6 +4,7 @@
import Icon from '$lib/components/elements/icon.svelte';
import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
import { AppRoute } from '$lib/constants';
import { asyncTimeout } from '$lib/utils';
import { getAllJobsStatus, type AllJobStatusResponseDto } from '@immich/sdk';
import { mdiCog } from '@mdi/js';
import { onDestroy, onMount } from 'svelte';
@@ -11,21 +12,19 @@
export let data: PageData;
let timer: ReturnType<typeof setInterval>;
let jobs: AllJobStatusResponseDto;
const load = async () => {
jobs = await getAllJobsStatus();
};
let running = true;
onMount(async () => {
await load();
timer = setInterval(load, 5000);
while (running) {
jobs = await getAllJobsStatus();
await asyncTimeout(5000);
}
});
onDestroy(() => {
clearInterval(timer);
running = false;
});
</script>

View File

@@ -4,19 +4,21 @@
import { getServerStatistics } from '@immich/sdk';
import { onDestroy, onMount } from 'svelte';
import type { PageData } from './$types';
import { asyncTimeout } from '$lib/utils';
export let data: PageData;
let setIntervalHandler: ReturnType<typeof setInterval>;
let running = true;
onMount(async () => {
setIntervalHandler = setInterval(async () => {
while (running) {
data.stats = await getServerStatistics();
}, 5000);
await asyncTimeout(5000);
}
});
onDestroy(() => {
clearInterval(setIntervalHandler);
running = false;
});
</script>

View File

@@ -51,7 +51,7 @@
shouldShowCreateUserForm = false;
};
const editUserHandler = async (user: UserResponseDto) => {
const editUserHandler = (user: UserResponseDto) => {
selectedUser = user;
shouldShowEditUserForm = true;
};
@@ -67,7 +67,7 @@
shouldShowInfoPanel = true;
};
const deleteUserHandler = async (user: UserResponseDto) => {
const deleteUserHandler = (user: UserResponseDto) => {
selectedUser = user;
shouldShowDeleteConfirmDialog = true;
};
@@ -82,7 +82,7 @@
shouldShowDeleteConfirmDialog = false;
};
const restoreUserHandler = async (user: UserResponseDto) => {
const restoreUserHandler = (user: UserResponseDto) => {
selectedUser = user;
shouldShowRestoreDialog = true;
};