UNPKG

fortify-schema

Version:

A modern TypeScript validation library designed around familiar interface syntax and powerful conditional validation. Experience schema validation that feels natural to TypeScript developers while unlocking advanced runtime validation capabilities.

110 lines (106 loc) 3.02 kB
'use strict'; var FormValidator = require('./FormValidator.js'); var LiveValidator = require('./LiveValidator.js'); var StreamValidator = require('./StreamValidator.js'); /** * Real-time Validation - live validation system * * This module provides real-time validation with reactive updates, * perfect for forms and live data validation. * * Uses modular validation engine for consistent validation logic. */ /** * Real-time validation utilities */ const Live = { /** * Create a reactive validator that validates in real-time * * @example * ```typescript * const UserSchema = Interface({ * email: "email", * username: "string(3,20)", * password: "string(8,)" * }); * * const liveValidator = Live.validator(UserSchema); * * // Listen for validation changes * liveValidator.onValidation((result) => { * console.log('Validation result:', result); * updateUI(result); * }); * * // Validate field by field * liveValidator.validateField('email', 'user@example.com'); * liveValidator.validateField('username', 'johndoe'); * * // Get current state * console.log(liveValidator.isValid); // true/false * console.log(liveValidator.errors); // Current errors * ``` */ validator(schema) { return new LiveValidator.LiveValidator(schema); }, /** * Create a form validator with field-level validation * * @example * ```typescript * const formValidator = Live.form(UserSchema); * * // Bind to form fields * formValidator.bindField('email', emailInput); * formValidator.bindField('username', usernameInput); * * // Auto-validation on input * formValidator.enableAutoValidation(); * * // Submit validation * formValidator.onSubmit((isValid, data, errors) => { * if (isValid) { * submitForm(data); * } else { * showErrors(errors); * } * }); * ``` */ form(schema) { return new FormValidator.FormValidator(schema); }, /** * Create a stream validator for continuous data validation * * @example * ```typescript * const streamValidator = Live.stream(DataSchema); * * // Validate streaming data * dataStream.subscribe((data) => { * streamValidator.validate(data); * }); * * // Handle validation results * streamValidator.onValid((data) => { * processValidData(data); * }); * * streamValidator.onInvalid((data, errors) => { * logInvalidData(data, errors); * }); * ``` */ stream(schema) { return new StreamValidator.StreamValidator(schema); }, }; exports.FormValidator = FormValidator.FormValidator; exports.LiveValidator = LiveValidator.LiveValidator; exports.StreamValidator = StreamValidator.StreamValidator; exports.Live = Live; exports.default = Live; //# sourceMappingURL=index.js.map