All files / src/middlewares validate.ts

20% Statements 1/5
0% Branches 0/2
50% Functions 1/2
20% Lines 1/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23              4x                              
import { AsyncAPISchema } from '@asyncapi/parser'
import GleeError from '../errors.js'
import GleeQuoreMessage from '../lib/message.js'
import { validateData } from '../lib/util.js'
import { MiddlewareCallback } from './index.js'
 
export default (schema: AsyncAPISchema, contextErrorMessage = '') =>
  function validate(event: GleeQuoreMessage, next: MiddlewareCallback) {
    const { humanReadableError, errors, isValid } = validateData(
      event.payload,
      schema as any
    )
    Iif (!isValid) {
      return next(
        new GleeError({
          humanReadableError: `${contextErrorMessage}${humanReadableError}`,
          errors,
        })
      )
    }
    next()
  }