Explicitely define server load and action types

This commit is contained in:
Thilo Hohlt
2024-08-05 14:38:44 +02:00
parent 2b3f0a80d2
commit fa500cf376
20 changed files with 55 additions and 27 deletions

View File

@@ -1,4 +1,6 @@
export const load = async ({ params, fetch, cookies }) => {
import type { LayoutServerLoad } from "./$types";
export const load: LayoutServerLoad = async ({ params, fetch, cookies }) => {
const websiteData = await fetch(`http://localhost:3000/website?id=eq.${params.websiteId}`, {
method: "GET",
headers: {

View File

@@ -1,6 +1,7 @@
import { handleFileUpload } from "$lib/server/utils.js";
import type { Actions, PageServerLoad } from "./$types";
export const load = async ({ params, fetch, cookies, url }) => {
export const load: PageServerLoad = async ({ params, fetch, cookies, url }) => {
const globalSettingsData = await fetch(
`http://localhost:3000/settings?website_id=eq.${params.websiteId}&select=*,media(*)`,
{
@@ -45,7 +46,7 @@ export const load = async ({ params, fetch, cookies, url }) => {
};
};
export const actions = {
export const actions: Actions = {
updateGlobal: async ({ request, fetch, cookies, params, locals }) => {
const data = await request.formData();

View File

@@ -3,8 +3,9 @@
import WebsiteEditor from "$lib/components/WebsiteEditor.svelte";
import { ALLOWED_MIME_TYPES } from "$lib/utils";
import SuccessOrError from "$lib/components/SuccessOrError.svelte";
import type { ActionData, PageServerData } from "./$types";
const { data, form } = $props();
const { data, form } = $props<{ data: PageServerData; form: ActionData }>();
</script>
<SuccessOrError success={form?.success} message={form?.message} />

View File

@@ -1,4 +1,6 @@
export const load = async ({ params, fetch, cookies, url, parent }) => {
import type { Actions, PageServerLoad } from "./$types";
export const load: PageServerLoad = async ({ params, fetch, cookies, url, parent }) => {
const searchQuery = url.searchParams.get("article_search_query");
const sortBy = url.searchParams.get("article_sort");
@@ -60,7 +62,7 @@ export const load = async ({ params, fetch, cookies, url, parent }) => {
};
};
export const actions = {
export const actions: Actions = {
createArticle: async ({ request, fetch, cookies, params }) => {
const data = await request.formData();

View File

@@ -5,8 +5,9 @@
import { enhance } from "$app/forms";
import Modal from "$lib/components/Modal.svelte";
import SuccessOrError from "$lib/components/SuccessOrError.svelte";
import type { ActionData, PageServerData } from "./$types";
const { data, form } = $props();
const { data, form } = $props<{ data: PageServerData; form: ActionData }>();
</script>
<SuccessOrError success={form?.success} message={form?.message} />

View File

@@ -1,6 +1,7 @@
import { handleFileUpload } from "$lib/server/utils.js";
import type { Actions, PageServerLoad } from "./$types";
export const load = async ({ parent, params, cookies, fetch }) => {
export const load: PageServerLoad = async ({ parent, params, cookies, fetch }) => {
const articleData = await fetch(`http://localhost:3000/article?id=eq.${params.articleId}`, {
method: "GET",
headers: {
@@ -16,7 +17,7 @@ export const load = async ({ parent, params, cookies, fetch }) => {
return { website, article };
};
export const actions = {
export const actions: Actions = {
default: async ({ fetch, cookies, request, params, locals }) => {
const data = await request.formData();

View File

@@ -3,8 +3,9 @@
import WebsiteEditor from "$lib/components/WebsiteEditor.svelte";
import { ALLOWED_MIME_TYPES } from "$lib/utils";
import SuccessOrError from "$lib/components/SuccessOrError.svelte";
import type { ActionData, PageServerData } from "./$types";
const { data, form } = $props();
const { data, form } = $props<{ data: PageServerData; form: ActionData }>();
</script>
<SuccessOrError success={form?.success} message={form?.message} />

View File

@@ -1,8 +1,9 @@
import { readFile, mkdir, writeFile } from "node:fs/promises";
import { join } from "node:path";
import { md } from "$lib/utils";
import type { Actions, PageServerLoad } from "./$types";
export const load = async ({ params, fetch, cookies, locals }) => {
export const load: PageServerLoad = async ({ params, fetch, cookies, locals }) => {
const websiteOverviewData = await fetch(
`http://localhost:3000/website_overview?id=eq.${params.websiteId}`,
{
@@ -24,7 +25,7 @@ export const load = async ({ params, fetch, cookies, locals }) => {
};
};
export const actions = {
export const actions: Actions = {
publishWebsite: async ({ request, fetch, cookies, params, locals }) => {
const data = await request.formData();
const websiteOverview = JSON.parse(data.get("website-overview") as string);

View File

@@ -1,8 +1,9 @@
<script lang="ts">
import { enhance } from "$app/forms";
import WebsiteEditor from "$lib/components/WebsiteEditor.svelte";
import type { ActionData, PageServerData } from "./$types";
const { data } = $props();
const { data, form } = $props<{ data: PageServerData; form: ActionData }>();
</script>
<WebsiteEditor