@speclynx/apidom-parser-adapter-asyncapi-yaml-2
v1.12.2
Published
Parser adapter for parsing YAML documents into AsyncAPI 2.x.y namespace.
Readme
@speclynx/apidom-parser-adapter-asyncapi-yaml-2
@speclynx/apidom-parser-adapter-asyncapi-yaml-2 is a parser adapter for following AsyncAPI specification versions defined in YAML format:
- AsyncAPI 2.6.0 specification
- AsyncAPI 2.5.0 specification
- AsyncAPI 2.4.0 specification
- AsyncAPI 2.3.0 specification
- AsyncAPI 2.2.0 specification
- AsyncAPI 2.1.0 specification
- AsyncAPI 2.0.0 specification
Under the hood this adapter uses @speclynx/apidom-parser-adapter-yaml-1-2 to parse a source string into generic ApiDOM in base ApiDOM namespace which is then refracted with AsyncApi 2.x.y Refractors.
Installation
You can install @speclynx/apidom-parser-adapter-asyncapi-yaml-2 via npm CLI by running the following command:
$ npm install @speclynx/apidom-parser-adapter-asyncapi-yaml-2Parser adapter API
This parser adapter is fully compatible with parser adapter interface required by @speclynx/apidom-parser and implements all required properties.
mediaTypes
Defines list of media types that this parser adapter recognizes.
[
'application/vnd.aai.asyncapi;version=2.0.0',
'application/vnd.aai.asyncapi;version=2.1.0',
'application/vnd.aai.asyncapi;version=2.2.0',
'application/vnd.aai.asyncapi;version=2.3.0',
'application/vnd.aai.asyncapi;version=2.4.0',
'application/vnd.aai.asyncapi;version=2.5.0',
'application/vnd.aai.asyncapi;version=2.6.0',
'application/vnd.aai.asyncapi+yaml;version=2.0.0',
'application/vnd.aai.asyncapi+yaml;version=2.1.0',
'application/vnd.aai.asyncapi+yaml;version=2.2.0',
'application/vnd.aai.asyncapi+yaml;version=2.3.0',
'application/vnd.aai.asyncapi+yaml;version=2.4.0',
'application/vnd.aai.asyncapi+yaml;version=2.5.0',
'application/vnd.aai.asyncapi+yaml;version=2.6.0',
]detect
Detection is based on a regular expression matching required AsyncApi 2.x.y specification symbols in YAML format.
namespace
This adapter exposes an instance of AsyncApi 2.x.y ApiDOM namespace.
parse
parse function consumes various options as a second argument. Here is a list of these options:
Option | Type | Default | Description
--- | --- | --- | ---
specObj | Object | Specification Object | This specification object drives the YAML AST transformation to AsyncAPI 2.x ApiDOM namespace.
sourceMap | Boolean | false | Indicate whether to generate source maps.
refractorOpts | Object | {} | Refractor options are passed to refractors during refracting phase.
All unrecognized arbitrary options will be ignored.
Usage
This parser adapter can be used directly or indirectly via @speclynx/apidom-parser.
Direct usage
During direct usage you don't need to provide mediaType as the parse function is already pre-bound
with supported media types.
import { parse, detect } from '@speclynx/apidom-parser-adapter-asyncapi-yaml-2';
// detecting
await detect('asyncapi: 2.0.0'); // => true
await detect('asyncapi: 2.1.0'); // => true
await detect('asyncapi: 2.2.0'); // => true
await detect('asyncapi: 2.3.0'); // => true
await detect('asyncapi: 2.4.0'); // => true
await detect('asyncapi: 2.5.0'); // => true
await detect('asyncapi: 2.6.0'); // => true
await detect('test'); // => false
// parsing
const parseResult = await parse('asyncapi: 2.6.0', { sourceMap: true });Indirect usage
You can omit the mediaType option here, but please read Word on detect vs mediaTypes before you do so.
import ApiDOMParser from '@speclynx/apidom-parser';
import * as asyncApiYamlAdapter from '@speclynx/apidom-parser-adapter-asyncapi-yaml-2';
const parser = new ApiDOMParser();
parser.use(asyncApiYamlAdapter);
const parseResult = await parser.parse('asyncapi: 2.6.0', { mediaType: asyncApiYamlAdapter.mediaTypes.latest('yaml') });