Skip to content

Message validation package from YAML and JSON AsyncAPI document

License

Notifications You must be signed in to change notification settings

Elhebert/asyncapi-validation

Folders and files

NameName
Last commit message
Last commit date
Dec 19, 2023
Dec 19, 2023
Jan 4, 2024
Jan 4, 2024
Dec 19, 2023
Dec 19, 2023
Dec 19, 2023
Dec 19, 2023
Dec 19, 2023
Dec 19, 2023
Dec 19, 2023
Dec 19, 2023
Jan 4, 2024
Dec 19, 2023
Dec 19, 2023
Jan 4, 2024
Jun 20, 2024
Dec 19, 2023
Dec 19, 2023

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.