Skip to content

Elhebert/asyncapi-validation

Repository files navigation

AsyncAPI validation

Unit tests codecov CodeQL

Message validation package for YAML and JSON AsyncAPI documents.

This package:

  • Load and parse your AsyncAPI documents from a file, an url or an in-line schema
  • Support AsyncAPI documents v2.x.x and v3.x.x
  • Support both YAML and JSON documents

Installation

# NPM
npm install asyncapi-validation
# Yarn
yarn add asyncapi-validation
# PNPM
pnpm install asyncapi-validation

Usage

Parsing Functions

fromFile(path)Promise.<ValidationFunction>

Parses an AsyncAPI schema from a file and returns a validation function.

fromUrl(url)Promise.<ValidationFunction>

Parses an AsyncAPI schema from a URL and returns a validation function.

fromSchema(schema)Promise.<ValidationFunction>

Parses an AsyncAPI schema from a string and returns a validation function.

fromFile(path) ⇒ Promise.<ValidationFunction>

Parses an AsyncAPI schema from a file and returns a validation function.

Kind: global function Returns: Promise.<ValidationFunction> - A promise that resolves to the validation function. Throws:

  • AsyncAPIParsingError if the schema is not valid or has governance issues.
Param Type Description
path string The path to the AsyncAPI schema file.

Example

const validator = await asyncApiValidation.parseFromFile('path/to/schema.yaml');
validator('messageKey', { foo: 'bar' });

fromUrl(url) ⇒ Promise.<ValidationFunction>

Parses an AsyncAPI schema from a URL and returns a validation function.

Kind: global function Returns: Promise.<ValidationFunction> - A promise that resolves to the validation function. Throws:

  • AsyncAPIParsingError if the schema is not valid or has governance issues.
Param Type Description
url string The URL of the AsyncAPI schema.

Example

const validator = await asyncApiValidation.fromUrl(
  'https://example.org/schema.yaml'
);
validator('messageKey', { foo: 'bar' });

fromSchema(schema) ⇒ Promise.<ValidationFunction>

Parses an AsyncAPI schema from a string and returns a validation function.

Kind: global function Returns: Promise.<ValidationFunction> - A promise that resolves to the validation function. Throws:

  • AsyncAPIParsingError if the schema is not valid or has governance issues.
Param Type Description
schema string The AsyncAPI schema as a string.

Example

const validator = await asyncApiValidation.fromSchema('asyncapi: 2.0.0');
validator('messageKey', { foo: 'bar' });

Validator Function

validate(schema) ⇒ ValidationFunction

Validates the provided AsyncAPI schema and returns a validation function.

Kind: global function Returns: ValidationFunction - The validation function.

Param Type Description
schema ParseOutput The parsed AsyncAPI schema.

validate~validatorFunction(key, payload) ⇒ boolean

Validates the provided payload against the AsyncAPI schema.

Kind: inner method of validate Returns: boolean - true if the payload is valid. Throws:

  • Error if no messages are found for the given key.
  • AsyncAPIValidationError if the payload fails validation.
Param Type Description
key string The key of the message to validate.
payload unknown The payload to validate.

Example

const validator = await asyncApiValidation.fromSchema('asyncapi: 2.0.0');
validator('messageKey', { foo: 'bar' });

Errors

AsyncAPIParsingError

Represents an error that occurs during the parsing of an AsyncAPI document.

Kind: global class

new AsyncAPIParsingError(message, [errors])

Represents an error that occurs during the parsing of an AsyncAPI document.

Param Type Description
message string The error message.
[errors] Array.<Diagnostic> Optional array of diagnostic errors associated with the parsing error.

AsyncAPIValidationError

Represents an error that occurs during AsyncAPI validation.

Kind: global class

new AsyncAPIValidationError(message, key, [errors])

Represents an error that occurs during AsyncAPI validation.

Param Type Description
message string The error message.
key string The key associated with the error.
[errors] Array.<ErrorObject> | null The array of validation error objects.