@wordpuppi/anyform-core
v0.5.1
Published
Pure TypeScript form validation, condition evaluation, and state management for anyform
Maintainers
Readme
@wordpuppi/anyform-core
Pure TypeScript form validation, condition evaluation, and state management for anyform.
Installation
npm install @wordpuppi/anyform-coreNote: Most users should install
@wordpuppi/anyform-reactor@wordpuppi/anyform-nextinstead, which include this package automatically.
When to Use This Package
- Building a custom integration (Vue, Svelte, vanilla JS)
- Need direct access to the validation engine
- Creating your own form state management
For React apps, use @wordpuppi/anyform-react. For Next.js, use @wordpuppi/anyform-next.
Quick Start
import { FormState } from '@wordpuppi/anyform-core';
// Create form state from schema (fetched from anyform server)
const form = new FormState(schema);
// Set values
form.setValue('email', '[email protected]');
form.setValue('name', 'John');
// Validate
const errors = form.validateField('email');
if (errors.length === 0) {
console.log('Email is valid!');
}
// Check visibility (for conditional fields)
if (form.isFieldVisible('company')) {
// Show company field
}
// Get all values for submission
const values = form.getValues();API
FormState
const form = new FormState(schema, initialValues?);Values:
setValue(field, value)- Set a field valuegetValue(field)- Get a field valuegetValues()- Get all values
Validation:
validateField(field)- Returns array of error messagesvalidateStep(stepId)- Validate all fields in a stepvalidateAll()- Validate entire formisValid()- Check if form has no errors
Visibility:
isFieldVisible(field)- Check if field should be shownisStepVisible(stepId)- Check if step should be showngetVisibleFields(stepId?)- Get visible fields for stepgetVisibleSteps()- Get visible steps
Navigation (multi-step):
getCurrentStep()- Get current stepnextStep()- Go to next visible stepprevStep()- Go to previous visible stepgoToStep(stepId)- Go to specific stepgetProgress()- Returns[current, total]
License
MIT
