remix-utils
Version:
This package contains simple utility functions to use with [React Router](https://reactrouter.com/).
23 lines (22 loc) • 1.11 kB
TypeScript
import type { StandardSchemaV1 } from "@standard-schema/spec";
import { type Cookie, type CookieParseOptions, type CookieSerializeOptions } from "react-router";
export interface TypedCookie<Schema extends StandardSchemaV1> extends Cookie {
isTyped: true;
parse(cookieHeader: string | null, options?: CookieParseOptions): Promise<StandardSchemaV1.InferOutput<Schema> | null>;
serialize(value: StandardSchemaV1.InferInput<Schema>, options?: CookieSerializeOptions): Promise<string>;
}
export declare function createTypedCookie<Schema extends StandardSchemaV1>({ cookie, schema, }: {
cookie: Cookie;
schema: Schema;
}): TypedCookie<Schema>;
/**
* Returns true if an object is a Remix Utils Typed Cookie container.
*
* @see https://github.com/sergiodxa/remix-utils#typed-cookies
*/
export declare function isTypedCookie<Schema extends StandardSchemaV1>(value: unknown): value is TypedCookie<Schema>;
export declare class ValidationError extends Error {
readonly issues: Readonly<StandardSchemaV1.Issue[]>;
name: string;
constructor(issues: Readonly<StandardSchemaV1.Issue[]>);
}