UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

59 lines (58 loc) 2.66 kB
import type { z } from 'zod'; import { appendForwardSlash as _appendForwardSlash } from '../../../core/path.js'; import type { ErrorInferenceObject, MaybePromise, ActionAPIContext as _ActionAPIContext } from '../utils.js'; export type ActionAPIContext = _ActionAPIContext; export declare const ACTION_QUERY_PARAMS: { actionName: string; actionPayload: string; }; export declare const appendForwardSlash: typeof _appendForwardSlash; export declare const ACTION_ERROR_CODES: readonly ["BAD_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "TIMEOUT", "CONFLICT", "PRECONDITION_FAILED", "PAYLOAD_TOO_LARGE", "UNSUPPORTED_MEDIA_TYPE", "UNPROCESSABLE_CONTENT", "TOO_MANY_REQUESTS", "CLIENT_CLOSED_REQUEST", "INTERNAL_SERVER_ERROR"]; export type ActionErrorCode = (typeof ACTION_ERROR_CODES)[number]; export declare class ActionError<_T extends ErrorInferenceObject = ErrorInferenceObject> extends Error { type: string; code: ActionErrorCode; status: number; constructor(params: { message?: string; code: ActionErrorCode; stack?: string; }); static codeToStatus(code: ActionErrorCode): number; static statusToCode(status: number): ActionErrorCode; static fromJson(body: any): ActionError<ErrorInferenceObject>; } export declare function isActionError(error?: unknown): error is ActionError; export declare function isInputError<T extends ErrorInferenceObject>(error?: ActionError<T>): error is ActionInputError<T>; export declare function isInputError(error?: unknown): error is ActionInputError<ErrorInferenceObject>; export type SafeResult<TInput extends ErrorInferenceObject, TOutput> = { data: TOutput; error: undefined; } | { data: undefined; error: ActionError<TInput>; }; export declare class ActionInputError<T extends ErrorInferenceObject> extends ActionError { type: string; issues: z.ZodIssue[]; fields: z.ZodError<T>['formErrors']['fieldErrors']; constructor(issues: z.ZodIssue[]); } export declare function callSafely<TOutput>(handler: () => MaybePromise<TOutput>): Promise<SafeResult<z.ZodType, TOutput>>; export declare function getActionQueryString(name: string): string; export type SerializedActionResult = { type: 'data'; contentType: 'application/json+devalue'; status: 200; body: string; } | { type: 'error'; contentType: 'application/json'; status: number; body: string; } | { type: 'empty'; status: 204; }; export declare function serializeActionResult(res: SafeResult<any, any>): SerializedActionResult; export declare function deserializeActionResult(res: SerializedActionResult): SafeResult<any, any>;