svelte-ux
Version:
- Increment version in `package.json` and commit as `Version bump to x.y.z` - `npm run publish`
30 lines (29 loc) • 1.34 kB
TypeScript
import type { Schema } from 'zod';
type FormStoreOptions<T> = {
schema?: Schema<T>;
};
export default function formStore<T = any>(initialState: T, options?: FormStoreOptions<T>): [{
subscribe: (this: void, run: import("svelte/store").Subscriber<T>, invalidate?: (value?: T) => void) => import("svelte/store").Unsubscriber;
}, {
set(newState: any): void;
/** Apply draft to state after verifying with schema (if available). Append change to undo stack */
commit(): boolean;
/** Revert draft to last committed state */
revert(): void;
/** Revert draft and state to initial state */
revertAll(): void;
/** Undo last committed change */
undo(): void;
/** Refresh `current` draft value (un-proxied) */
refresh(): void;
current: import("svelte/store").Writable<T>;
update(this: void, updater: import("svelte/store").Updater<import("immer").Draft<T>>): void;
subscribe(this: void, run: import("svelte/store").Subscriber<import("immer").Draft<T>>, invalidate?: (value?: import("immer").Draft<T>) => void): import("svelte/store").Unsubscriber;
}, {
subscribe: (this: void, run: import("svelte/store").Subscriber<{
[key: string]: string;
}>, invalidate?: (value?: {
[key: string]: string;
}) => void) => import("svelte/store").Unsubscriber;
}];
export {};