Skip to content

Schema Definition

Basic Schema Structure

Every Validno schema follows a consistent structure that defines how your data should be validated:

javascript
const schema = new Schema({
  fieldName: {
    type: String,           // Required: field type
    required: true,         // Optional: whether field is required (default: true)
    rules: {},             // Optional: validation rules
    title: "Field Name",   // Optional: human-readable field name
    customMessage: (details) => "Custom error" // Optional: custom error function
  }
});

Field Properties

type (Required)

Specifies the expected data type for the field. Can be:

  • Built-in JavaScript types: String, Number, Boolean, Array, Object, Date, RegExp
  • null for null values
  • Union types: [String, Number] for multiple allowed types
  • Custom classes: MyCustomClass
  • 'any' for any type

required (Optional)

Boolean value indicating whether the field is mandatory. Defaults to true.

rules (Optional)

Object containing validation rules specific to the field type. See the validation rules sections for details.

title (Optional)

Human-readable name for the field, used in error messages.

customMessage (Optional)

Function to generate custom error messages. Receives validation details and should return a string.

Simple Example

javascript
import Schema from 'validno';

const productSchema = new Schema({
  name: {
    type: String,
    required: true,
    rules: {
      lengthMin: 1,
      lengthMax: 100
    }
  },
  price: {
    type: Number,
    required: true,
    rules: {
      min: 0
    }
  },
  description: {
    type: String,
    required: false
  },
  inStock: {
    type: Boolean,
    required: true
  }
});

// Validate product data
const product = {
  name: "Laptop",
  price: 999.99,
  description: "High-performance laptop",
  inStock: true
};

const result = productSchema.validate(product);

Next Steps

Released under the ISC License.