Registry / testing / asyncapi-validator

asyncapi-validator

JSON →
library5.1.1jsnpmunverified

Validate messages against AsyncAPI schemas (v2.0.0 and above). Supports loading schemas from local files or URLs in JSON/YAML format. Current stable version: 5.1.1. Provides class method fromSource() and instance method validate() for payload validation against channel operations. Distinguishes itself by supporting both 'publish'/'subscribe' and 'send'/'receive' operations, with support for message identifier keys. Includes deprecated validateByMessageId() method for older schemas. Actively maintained with TypeScript typings.

npm install asyncapi-validator
INSTALL
IMPORT
SIG · ASYNCAPI-VALIDATOR
A
asyncapi-validator
testingjavascriptv5.1.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AsyncApiValidator
import AsyncApiValidator from 'asyncapi-validator'
const { AsyncApiValidator } = require('asyncapi-validator')
Package exports default export; named import will not work. For CommonJS use const AsyncApiValidator = require('asyncapi-validator').default
fromSource
AsyncApiValidator.fromSource(source, options)
import { fromSource } from 'asyncapi-validator'
fromSource is a static method on AsyncApiValidator. It is not a named export.
validate
validator.validate(key, payload, channel, operation)
Instance method; calls return boolean or throw validation error.

Loads an AsyncAPI YAML schema from file, creates a validator with message identifier option, and validates a payload for a given channel and operation.

import AsyncApiValidator from 'asyncapi-validator'; import { readFileSync } from 'fs'; const schemaYaml = readFileSync('./asyncapi.yaml', 'utf8'); (async () => { const validator = await AsyncApiValidator.fromSource(schemaYaml, { msgIdentifier: 'name' }); const payload = { id: 1, lumens: 500 }; const key = 'lightMeasured'; const channel = 'lightingMeasured'; const operation = 'publish'; try { const isValid = validator.validate(key, payload, channel, operation); console.log('Payload valid:', isValid); } catch (err) { console.error('Validation error:', err.message); } })();
Debug
Known issues
deprecated.validateByMessageId() is deprecated as messageId was removed in AsyncAPI v3.0.0
fix
Use .validate() with msgIdentifier option instead.
affects: >=5.0.0
breakingmsgIdentifier option is now required in fromSource()
fix
Provide msgIdentifier option when calling fromSource().
affects: >=5.0.0
breakingESM-only package: require() fails unless using default export
fix
Use import AsyncApiValidator from 'asyncapi-validator' or const AsyncApiValidator = require('asyncapi-validator').default
affects: >=5.0.0
gotchaOperation parameter in validate() may include 'send'/'receive' for AsyncAPI v3, not just 'publish'/'subscribe'
fix
Refer to your AsyncAPI spec to determine correct operation value.
affects: >=5.0.0
Errors
Common errors & fixes
TypeError: AsyncApiValidator.fromSource is not a constructor
Using named import instead of default import
fix
Change to import AsyncApiValidator from 'asyncapi-validator'
Error: "msgIdentifier" option is required
Missing msgIdentifier in fromSource options
fix
Add msgIdentifier: 'name' (or appropriate field) in fromSource options
ValidationError: [{"instancePath":"","keyword":"required","message":"must have required property 'id'"}]
Payload missing required property according to schema
fix
Ensure payload contains all required fields defined in the AsyncAPI schema
Upgrade
Version history
5.1.1latest on npm
Audit
Dependencies
js-yamlrequiredParsing YAML schema files
ajvrequiredJSON Schema validation for payloads
Agent activity
23 hits · last 30 days
node
18
OpenAI (training)
2
Amazon
1
Resources
asyncapi-validator — npm install asyncapi-validator · libregistry