0.2.0 • Published 4 months ago

asyncapi-validation v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

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.

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.
ParamTypeDescription
pathstringThe 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.
ParamTypeDescription
urlstringThe 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.
ParamTypeDescription
schemastringThe 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.

ParamTypeDescription
schemaParseOutputThe 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.
ParamTypeDescription
keystringThe key of the message to validate.
payloadunknownThe 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.

ParamTypeDescription
messagestringThe error message.
errorsArray.<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.

ParamTypeDescription
messagestringThe error message.
keystringThe key associated with the error.
errorsArray.<ErrorObject> | nullThe array of validation error objects.