@asyncapi/converter

Convert AsyncAPI documents from older to newer versions.

Usage no npm install needed!

<script type="module">
  import asyncapiConverter from 'https://cdn.skypack.dev/@asyncapi/converter';
</script>

README

AsyncAPI Converter

Convert AsyncAPI documents older to newer versions.

Installation

npm i -g @asyncapi/converter

Usage

From CLI

Minimal example:

asyncapi-converter streetlights.yml

# Result:
asyncapi: '2.0.0'
channels:
...

Specify the application id:

asyncapi-converter --id=urn:com.asynapi.streetlights streetlights.yml

# Result:
asyncapi: '2.0.0'
id: 'urn:com.asynapi.streetlights'
...

Save the result in a file by stream:

asyncapi-converter streetlights.yml > streetlights2.yml

Save the result in a file by -o, --output flag:

asyncapi-converter streetlights.yml -o streetlights2.yml

As a package

const { convert } = require('@asyncapi/converter')

try {
  const asyncapi = fs.readFileSync('streetlights.yml', 'utf-8')
  console.log(convert(asyncapi, '2.0.0', {
      id: 'urn:com.asyncapi.streetlights'
  }))
} catch (e) {
  console.error(e)
}

Known missing features

  • When converting from 1.x to 2.x, Streaming APIs (those using stream instead of topics or events) are converted correctly but information about framing type and delimiter is missing until a protocolInfo for that purpose is created.