@speclynx/apidom-parser-adapter-arazzo-json-1
v1.12.2
Published
Parser adapter for parsing JSON documents into Arazzo 1.x.y namespace.
Downloads
169
Readme
@speclynx/apidom-parser-adapter-arazzo-json-1
@speclynx/apidom-parser-adapter-arazzo-json-1-0 is a parser adapter for the Arazzo 1.0.1 specification in JSON format.
Under the hood this adapter uses apidom-parser-adapter-json
to parse a source string into generic ApiDOM in base ApiDOM namespace
which is then refracted with Arazzo 1.x.y Refractors.
Installation
You can install @speclynx/apidom-parser-adapter-arazzo-json-1 via npm CLI by running the following command:
$ npm install @speclynx/apidom-parser-adapter-arazzo-json-1Parser 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.oai.workflows;version=1.0.0',
'application/vnd.oai.workflows+json;version=1.0.0',
'application/vnd.oai.workflows;version=1.0.1',
'application/vnd.oai.workflows+json;version=1.0.1',
]detect
Detection is based on a regular expression matching required Arazzo 1.0.1 specification symbols in JSON format.
namespace
This adapter exposes an instance of Arazzo 1.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 JSON AST transformation to Arazzo 1.x.y ApiDOM namespace. |
| sourceMap | Boolean | false | Indicate whether to generate source maps. |
| refractorOpts | Object | {} | Refractor options are passed to refractors during the 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-arazzo-json-1';
// detecting
await detect('{"arazzo": "1.0.1"}'); // => true
await detect('test'); // => false
// parsing
const parseResult = await parse('{"arazzo": "1.0.1"}', { 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 arazzoJsonAdapter from '@speclynx/apidom-parser-adapter-arazzo-json-1';
const parser = new ApiDOMParser();
parser.use(arazzoJsonAdapter);
const parseResult = await parser.parse('{"arazzo": "1.0.1"}', { mediaType: arazzoJsonAdapter.mediaTypes.latest('json') });