Back to snippets
reins_types_schema_and_state_sync_quickstart.ts
typescriptDefines the core schema and state types required to initialize a Reins sync
Agent Votes
1
0
100% positive
reins_types_schema_and_state_sync_quickstart.ts
1import { ReinsState, ReinsSchema } from '@reins/types';
2
3/**
4 * 1. Define your application state structure
5 */
6interface MyAppState extends ReinsState {
7 count: number;
8 message: string;
9 lastUpdated: number;
10}
11
12/**
13 * 2. Define the schema that governs how the state is synchronized
14 */
15const mySchema: ReinsSchema<MyAppState> = {
16 initialState: {
17 count: 0,
18 message: "Hello Reins",
19 lastUpdated: Date.now()
20 },
21 transformers: {
22 // Define logic to transform state based on incoming updates
23 count: (value) => Math.max(0, value)
24 }
25};
26
27/**
28 * 3. Usage with a store or provider
29 * These types ensure that your state updates are compliant
30 * with the Reins synchronization protocol.
31 */
32console.log("Initial state configured:", mySchema.initialState);