@westacks/vortex
Version:
Server-based routing for SPAs
34 lines (33 loc) • 1.81 kB
TypeScript
import { RouterRequestConfig } from './router';
export type FData<T extends object> = T & Form<T>;
export declare class Form<TForm extends object> {
_defaults: TForm;
_transform: unknown;
_recentlySuccessfulTimeout: NodeJS.Timeout | null;
readonly _handler: ProxyHandler<FData<TForm>>;
wasSuccessful: boolean;
recentlySuccessful: boolean;
processing: boolean;
errors: Record<string, string>;
get hasErrors(): boolean;
get isDirty(): boolean;
constructor(initial: TForm, handler: ProxyHandler<FData<TForm>>);
data(): TForm;
transform(fn: (data: TForm) => unknown): this;
reset(...fields: string[]): this;
fill(data: TForm): this;
defaults(field?: string | Record<string, unknown>, value?: unknown): this;
clearErrors(...fields: string[]): this;
setError(field: string | Record<string, string>, message?: string): this;
request<TForm>(options: RouterRequestConfig<TForm>): Promise<import('./router').RouterResponse<any, any>>;
get(url: string, options?: RouterRequestConfig): Promise<import('./router').RouterResponse<any, any>>;
post(url: string, options?: RouterRequestConfig): Promise<import('./router').RouterResponse<any, any>>;
put(url: string, options?: RouterRequestConfig): Promise<import('./router').RouterResponse<any, any>>;
patch(url: string, options?: RouterRequestConfig): Promise<import('./router').RouterResponse<any, any>>;
delete(url: string, options?: RouterRequestConfig): Promise<import('./router').RouterResponse<any, any>>;
}
export declare function useForm<T extends object>(data: T | (() => T), rememberKey?: string): {
get: import('./signals').SignalGetter<FData<T>>;
set: import('./signals').SignalSetter<FData<T>>;
subscribe: (fn: (form: FData<T>) => void) => () => void;
};