Fake Mirrors
    Preparing search index...

    Ajv-based validator implementation.

    Provides thread-safe schema validation with comprehensive error reporting. Uses Ajv with strict configuration for production use.

    // Register in DI container
    AjvValidator.register(container)

    // Get validator
    const validator = container.resolve<Validator>(VALIDATOR)

    // Add and validate schemas
    validator.addSchema('user', {
    type: 'object',
    properties: {
    name: { type: 'string' },
    age: { type: 'number', minimum: 0 }
    },
    required: ['name']
    })

    // Type-safe validation
    if (validator.guardSchema<User>('user', data)) {
    console.log(data.name)
    }

    https://ajv.js.org/ - Ajv documentation

    Implements

    Constructors

    Methods

    • Register a JSON schema with a unique name.

      Parameters

      • name: string

        Unique schema identifier

      • schema: object

        JSON schema object

      Returns void

      Error if schema with name already exists

    • Strict validation using assertion.

      Throws ValidatorError with detailed validation errors on failure. Use this for critical validation in request/response processing.

      Type Parameters

      • T

        Expected data type after validation

      Parameters

      • name: string

        Schema name to validate against

      • data: unknown

        Unknown data to validate

      Returns asserts data is T

      ValidatorError with validation error details

      interface Request {
      method: string
      path: string
      }

      try {
      validator.assertSchema<Request>('request', inputData)
      // TypeScript knows this is Request
      processRequest(inputData.path)
      } catch (error) {
      if (error instanceof ValidatorError) {
      // Detailed error info
      console.log(error.validateErrors)
      }
      }
    • Type-safe validation using type guard.

      Returns false instead of throwing on validation failure. Use this for non-critical validation.

      Type Parameters

      • T

        Expected data type after validation

      Parameters

      • name: string

        Schema name to validate against

      • data: unknown

        Unknown data to validate

      Returns data is T

      true if data matches schema (and narrows type to T)

      interface User {
      id: string
      name: string
      }

      if (validator.guardSchema<User>('user', inputData)) {
      // TypeScript knows this is User
      console.log(inputData.name)
      } else {
      console.log('Invalid user data')
      }