From 53b8158fc591339732c6fd11ac6c1beadf154f69 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 5 Jun 2023 09:25:14 -0700 Subject: [PATCH] site: fix svelte-check errors (#8696) --- sites/svelte.dev/package.json | 4 ++-- sites/svelte.dev/src/lib/db/gist.js | 6 ++++- sites/svelte.dev/src/lib/db/session.js | 22 +++++++++---------- sites/svelte.dev/src/lib/db/types.d.ts | 13 ++++++++--- .../src/routes/(authed)/+layout.svelte | 6 ++--- .../src/routes/(authed)/apps/+page.svelte | 10 ++++----- .../src/routes/auth/callback/+server.js | 2 +- .../src/routes/auth/logout/+server.js | 4 ++-- sites/svelte.dev/src/routes/roadmap/+page.js | 2 +- .../routes/tutorial/random-number/+server.js | 8 +++---- 10 files changed, 44 insertions(+), 33 deletions(-) diff --git a/sites/svelte.dev/package.json b/sites/svelte.dev/package.json index 654f14c54c..8addac69ce 100644 --- a/sites/svelte.dev/package.json +++ b/sites/svelte.dev/package.json @@ -11,8 +11,8 @@ "update": "node scripts/update.js --force=true", "preview": "vite preview", "start": "node build", - "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch", + "check": "node scripts/update.js && svelte-kit sync && svelte-check", + "check:watch": "svelte-kit sync && svelte-check --watch", "format": "pnpm run check:format -- --write", "check:format": "prettier --check . --ignore-path .gitignore --plugin-search-dir=." }, diff --git a/sites/svelte.dev/src/lib/db/gist.js b/sites/svelte.dev/src/lib/db/gist.js index c571473514..f1c4d9f862 100644 --- a/sites/svelte.dev/src/lib/db/gist.js +++ b/sites/svelte.dev/src/lib/db/gist.js @@ -1,10 +1,14 @@ import { client } from './client.js'; +/** @typedef {import('./types').User} User */ /** @typedef {import('./types').UserID} UserID */ /** @typedef {import('./types').Gist} Gist */ const PAGE_SIZE = 90; +/** + * @param {User} user + */ export async function list(user, { offset, search }) { const { data, error } = await client.rpc('gist_list', { list_search: search || '', @@ -47,7 +51,7 @@ export async function create(user, gist) { /** * @param {string} id - * @returns {Promise} + * @returns {Promise>} */ export async function read(id) { const { data, error } = await client diff --git a/sites/svelte.dev/src/lib/db/session.js b/sites/svelte.dev/src/lib/db/session.js index b3170e5617..5c4f4bc0ad 100644 --- a/sites/svelte.dev/src/lib/db/session.js +++ b/sites/svelte.dev/src/lib/db/session.js @@ -2,15 +2,17 @@ import * as cookie from 'cookie'; import flru from 'flru'; import { client } from './client.js'; -const session_cache = flru(1000); - /** @typedef {import('./types').User} User */ /** - * @param {User} user - * @param {string} access_token + * @type {import('flru').flruCache} */ -export async function create(user, access_token) { +const session_cache = flru(1000); + +/** + * @param {import('./types').GitHubUser} user + */ +export async function create(user) { const { data, error } = await client.rpc('login', { user_github_id: user.github_id, user_github_name: user.github_name, @@ -45,22 +47,20 @@ export async function read(sessionid) { if (!session_cache.get(sessionid)) { session_cache.set( sessionid, - client + await client .rpc('get_user', { sessionid }) .then(({ data, error }) => { if (error) { + session_cache.set(sessionid, null); throw new Error(error.message); } return data.id && data; }) - .catch(() => { - session_cache.set(sessionid, null); - }) ); } - return await session_cache.get(sessionid); + return session_cache.get(sessionid); } /** @param {string} sessionid */ @@ -74,7 +74,7 @@ export async function destroy(sessionid) { session_cache.set(sessionid, null); } -/** @type {string | null} str */ +/** @param {string | null} str */ export function from_cookie(str) { if (!str) return null; return read(cookie.parse(str).sid); diff --git a/sites/svelte.dev/src/lib/db/types.d.ts b/sites/svelte.dev/src/lib/db/types.d.ts index 438dd46cae..d2662fcb1e 100644 --- a/sites/svelte.dev/src/lib/db/types.d.ts +++ b/sites/svelte.dev/src/lib/db/types.d.ts @@ -2,9 +2,16 @@ export type UserID = number; export interface User { id: UserID; - name: string; - username: string; - avatar: string; + github_name: string; + github_login: string; + github_avatar_url: string; +} + +export interface GitHubUser { + github_id: string; + github_name: string; + github_login: string; + github_avatar_url: string; } export interface Gist { diff --git a/sites/svelte.dev/src/routes/(authed)/+layout.svelte b/sites/svelte.dev/src/routes/(authed)/+layout.svelte index 9389f25e9c..3d2585c7ef 100644 --- a/sites/svelte.dev/src/routes/(authed)/+layout.svelte +++ b/sites/svelte.dev/src/routes/(authed)/+layout.svelte @@ -1,5 +1,5 @@ diff --git a/sites/svelte.dev/src/routes/(authed)/apps/+page.svelte b/sites/svelte.dev/src/routes/(authed)/apps/+page.svelte index bbdeb57a1c..7c489570e6 100644 --- a/sites/svelte.dev/src/routes/(authed)/apps/+page.svelte +++ b/sites/svelte.dev/src/routes/(authed)/apps/+page.svelte @@ -2,14 +2,14 @@ import { getContext } from 'svelte'; import { Icon } from '@sveltejs/site-kit/components'; import { ago } from '$lib/time'; - import { goto, invalidate } from '$app/navigation'; + import { goto, invalidateAll } from '$app/navigation'; /** @type {import('./$types').PageData} */ export let data; const { login, logout } = getContext('app'); - const format = (str) => ago(new Date(str)); + const format = /** @param {string} str */ (str) => ago(new Date(str)); let destroying = false; @@ -35,7 +35,7 @@ if (res.ok) { selected = []; - await invalidate(); + await invalidateAll(); // this is a temporary fix because invalidation only works once // TODO raise an issue @@ -84,8 +84,8 @@ {:else}
{ - const search = new FormData(e.target).get('search'); - goto(search ? `/apps?search=${encodeURIComponent(search)}` : '/apps'); + const search = new FormData(/** @type {HTMLFormElement} */ (e.target)).get('search'); + goto(search ? `/apps?search=${encodeURIComponent(search.toString())}` : '/apps'); }} > setTimeout(res, 1000));