@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
TypeScript
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 {};