full-stack-svelte-kit
Version:
This framework is built on top of `@sveltejs/kit`.
46 lines (39 loc) • 1.35 kB
TypeScript
import type { Request } from "@sveltejs/kit";
interface ReadOnlyFormData {
get(key: string): string;
getAll(key: string): string[];
has(key: string): boolean;
entries(): Generator<[string, string], void>;
keys(): Generator<string, void>;
values(): Generator<string, void>;
[Symbol.iterator](): Generator<[string, string], void>;
}
type MaybePromise<T> = T | Promise<T>;
export type Loader<
Pr extends Record<any, any> = Record<any, any>,
Locals = Record<string, any>
> = (request: Request<Locals, never>) => MaybePromise<LoaderResult<Pr>>;
export type Action<
Data extends Record<any, any> = Record<any, any>,
Err extends Record<string, string> = Record<string, string>,
Locals = Record<string, any>
> = (
request: Request<Locals, ReadOnlyFormData>
) => MaybePromise<ActionResult<Data, Err>>;
export interface LoaderResult<Pr extends Record<any, any> = Record<any, any>> {
headers?: Record<string, string | string[]>;
props?: Pr;
error?: string | Error;
status?: number;
redirect?: string;
maxage?: string;
}
export interface ActionResult<
Data extends Record<any, any> = Record<any, any>,
Err extends Record<string, string> = Record<string, string>
> {
headers?: Record<string, string | string[]>;
data?: Data;
errors?: Err;
status?: number;
}