perfect-validator
Version:
A TypeScript-based validation library that supports both static and dynamic validation with serializable models.
226 lines (224 loc) • 5.09 kB
text/typescript
import { PerfectValidator } from './index';
export const ValidationTypeParams: Record<
PerfectValidator.ValidationType,
PerfectValidator.IValidationTypeParams
> = {
S: {
type: 'String',
description: 'Text values with optional length and pattern constraints',
params: [
{
name: 'minLength',
type: 'number',
description: 'Minimum length of the string',
},
{
name: 'maxLength',
type: 'number',
description: 'Maximum length of the string',
},
{
name: 'values',
type: 'string[]',
description: 'Array of allowed values',
},
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'default',
type: 'string',
description: 'Default value if field is not provided',
},
],
},
N: {
type: 'Number',
description: 'Numeric values with optional range constraints',
params: [
{
name: 'min',
type: 'number',
description: 'Minimum allowed value',
},
{
name: 'max',
type: 'number',
description: 'Maximum allowed value',
},
{
name: 'integer',
type: 'boolean',
description: 'Whether the number must be an integer',
},
{
name:'decimal',
type:'boolean',
description:'can be decimal or an integer',
},
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'values',
type: 'number[]',
description: 'Array of allowed values',
},
{
name: 'default',
type: 'number',
description: 'Default value if field is not provided',
},
],
},
B: {
type: 'Boolean',
description: 'True/false values',
params: [
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'default',
type: 'boolean',
description: 'Default value if field is not provided',
},
],
},
L: {
type: 'Array',
description: 'Array of values with type validation',
params: [
{
name: 'items',
type: 'ValidationRule | string',
description: 'Validation rule for array items',
required: true,
},
{
name: 'minLength',
type: 'number',
description: 'Minimum array length',
},
{
name: 'maxLength',
type: 'number',
description: 'Maximum array length',
},
{
name: 'values',
type: 'any[]',
description: 'Array of allowed values',
},
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
],
},
M: {
type: 'Map',
description: 'Object with defined field structure',
params: [
{
name: 'fields',
type: 'Record<string, ValidationRule | string>',
description: 'Validation rules for object fields',
required: true,
},
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
],
},
EMAIL: {
type: 'Email',
description: 'Valid email address format',
params: [
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'default',
type: 'string',
description: 'Default value if field is not provided',
},
],
},
URL: {
type: 'URL',
description: 'Valid URL format',
params: [
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'default',
type: 'string',
description: 'Default value if field is not provided',
},
],
},
DATE: {
type: 'Date',
description: 'Valid date format',
params: [
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'default',
type: 'string',
description: 'Default value if field is not provided',
},
],
},
PHONE: {
type: 'Phone',
description: 'Valid phone number format',
params: [
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
{
name: 'default',
type: 'string',
description: 'Default value if field is not provided',
},
],
},
REGEX: {
type: 'Regex',
description: 'Custom pattern matching',
params: [
{
name: 'pattern',
type: 'string',
description: 'Regular expression pattern',
required: true,
},
{
name: 'optional',
type: 'boolean',
description: 'Whether the field is optional',
},
],
},
};