⚙️ Auto-Generated Setters

Automatic setter creation for all store fields

Interactive Setters Demo

Current User State

First Name: John

Last Name: Doe

Full Name: John Doe

Status:Active

Theme: light

Notifications: Disabled

Name Controls

Status & Theme

Random Values

Alternative: Manual Set Method

Raw State Object:

{
  "firstName": "John",
  "lastName": "Doe",
  "isActive": true,
  "theme": "light",
  "notifications": false
}

🤖 Automatic Generation

For every field in your store, NextTinyRXStore automatically generates a corresponding setter function:

  • firstNamesetters.setFirstName()
  • lastNamesetters.setLastName()
  • isActivesetters.setIsActive()
  • userProfilesetters.setUserProfile()

Store Definition

const userStore = createFieldStore({
  firstName: "John",
  lastName: "Doe",
  isActive: true,
  theme: "light",
  notifications: false,
});

// Setters are automatically available:
// userStore.setters.setFirstName()
// userStore.setters.setLastName()
// userStore.setters.setIsActive()
// userStore.setters.setTheme()
// userStore.setters.setNotifications()

Using Auto-Generated Setters

// Individual field updates
userStore.setters.setFirstName("Jane");
userStore.setters.setLastName("Smith");
userStore.setters.setIsActive(false);

// vs. Manual approach:
userStore.set({ firstName: "Jane" });
userStore.set({ lastName: "Smith" });
userStore.set({ isActive: false });

// Both approaches work!

TypeScript Benefits

// Full TypeScript support with auto-completion
userStore.setters.setFirstName("Alice");  // ✅ string expected
userStore.setters.setIsActive(true);      // ✅ boolean expected
userStore.setters.setAge(25);             // ✅ number expected

// TypeScript will catch errors:
userStore.setters.setFirstName(123);      // ❌ Type error!
userStore.setters.setIsActive("yes");     // ❌ Type error!