UNPKG

@designerstrust/remix-utils

Version:

This package contains simple utility functions to use with [Remix.run](https://remix.run).

19 lines (18 loc) 1.2 kB
import type { TypedResponse } from "@remix-run/server-runtime"; declare type ActionsWithTypedResponse = Record<string, () => Promise<TypedResponse>>; declare type TypedActions<T extends ActionsWithTypedResponse> = { [K in keyof T]: T[K] extends () => Promise<TypedResponse<infer V>> ? TypedResponse<V> : never; }; /** * Runs an action based on the request's action name * @param request The request to parse for an action name * @param actions The map of actions to run * @returns The response from the action * @throws {ReferenceError} Action name not found * @throws {ReferenceError} Action "${name}" not found */ export declare function namedAction<T extends ActionsWithTypedResponse>(request: Request, actions: T): Promise<TypedActions<T>[keyof T]>; export declare function namedAction<T extends ActionsWithTypedResponse>(url: URL, actions: T): Promise<TypedActions<T>[keyof T]>; export declare function namedAction<T extends ActionsWithTypedResponse>(searchParams: URLSearchParams, actions: T): Promise<TypedActions<T>[keyof T]>; export declare function namedAction<T extends ActionsWithTypedResponse>(formData: FormData, actions: T): Promise<TypedActions<T>[keyof T]>; export {};