Skip to content

Commit

Permalink
feat: support 2.3.0 (#76)
Browse files Browse the repository at this point in the history
  • Loading branch information
magicmatatjahu authored Jan 31, 2022
1 parent de08a5a commit 969e3ff
Show file tree
Hide file tree
Showing 5 changed files with 253 additions and 9 deletions.
2 changes: 1 addition & 1 deletion cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ if (!asyncapiFile) {
program.help(); // This exits the process
}
if (!version) {
version = '2.2.0';
version = '2.3.0';
}

try {
Expand Down
20 changes: 12 additions & 8 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const conversions = {
'2.0.0': from__2_0_0_rc2__to__2_0_0,
'2.1.0': from__2_0_0__to__2_1_0,
'2.2.0': from__2_1_0__to__2_2_0,
'2.3.0': from__2_2_0__to__2_3_0,
}
const conversionVersions = Object.keys(conversions);

Expand Down Expand Up @@ -192,14 +193,17 @@ function from__2_0_0_rc2__to__2_0_0(asyncapi2rc2, options) {
return result;
}

function from__2_0_0__to__2_1_0(asyncapi2) {
const result = asyncapi2;
result.asyncapi = '2.1.0';
return result;
function from__2_0_0__to__2_1_0(asyncapi) {
asyncapi.asyncapi = '2.1.0';
return asyncapi;
}

function from__2_1_0__to__2_2_0(asyncapi2) {
const result = asyncapi2;
result.asyncapi = '2.2.0';
return result;
function from__2_1_0__to__2_2_0(asyncapi) {
asyncapi.asyncapi = '2.2.0';
return asyncapi;
}

function from__2_2_0__to__2_3_0(asyncapi) {
asyncapi.asyncapi = '2.3.0';
return asyncapi;
}
14 changes: 14 additions & 0 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,20 @@ describe('#convert', () => {
const result = convert(input, '2.2.0');
assertResults(output, result);
});

it('should convert from 2.1.0 to 2.3.0', () => {
const input = fs.readFileSync(path.resolve(__dirname, 'input', '2.1.0', 'streetlights.yml'), 'utf8');
const output = fs.readFileSync(path.resolve(__dirname, 'output', '2.3.0', 'streetlights.yml'), 'utf8');
const result = convert(input, '2.3.0');
assertResults(output, result);
});

it('should convert from 2.2.0 to 2.3.0', () => {
const input = fs.readFileSync(path.resolve(__dirname, 'input', '2.2.0', 'streetlights.yml'), 'utf8');
const output = fs.readFileSync(path.resolve(__dirname, 'output', '2.3.0', 'streetlights.yml'), 'utf8');
const result = convert(input, '2.3.0');
assertResults(output, result);
});
});

/*
Expand Down
113 changes: 113 additions & 0 deletions test/input/2.2.0/streetlights.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
asyncapi: 2.2.0
info:
title: Streetlights API
version: 1.0.0
description: "The Smartylighting Streetlights API allows you to remotely manage the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off \U0001F303\n* Dim a specific streetlight \U0001F60E\n* Receive real-time information about environmental lighting conditions \U0001F4C8\n"
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
servers:
default:
url: 'api.streetlights.smartylighting.com:{port}'
description: Test broker
variables:
port:
description: Secure connection (TLS) is available through port 8883.
default: '1883'
enum:
- '1883'
- '8883'
protocol: mqtt
security:
- apiKey: []
components:
messages:
lightMeasured:
summary: >-
Inform about environmental lighting conditions for a particular
streetlight.
payload:
$ref: '#/components/schemas/lightMeasuredPayload'
turnOnOff:
summary: Command a particular streetlight to turn the lights on or off.
payload:
$ref: '#/components/schemas/turnOnOffPayload'
dimLight:
summary: Command a particular streetlight to dim the lights.
payload:
$ref: '#/components/schemas/dimLightPayload'
schemas:
lightMeasuredPayload:
type: object
properties:
lumens:
type: integer
minimum: 0
description: Light intensity measured in lumens.
sentAt:
$ref: '#/components/schemas/sentAt'
turnOnOffPayload:
type: object
properties:
command:
type: string
enum:
- 'on'
- 'off'
description: Whether to turn on or off the light.
sentAt:
$ref: '#/components/schemas/sentAt'
dimLightPayload:
type: object
properties:
percentage:
type: integer
description: Percentage to which the light should be dimmed to.
minimum: 0
maximum: 100
sentAt:
$ref: '#/components/schemas/sentAt'
sentAt:
type: string
format: date-time
description: Date and time when the message was sent.
securitySchemes:
apiKey:
type: apiKey
in: user
description: Provide your API key as the user and leave the password empty.
parameters:
streetlightId:
name: streetlightId
description: The ID of the streetlight.
schema:
type: string
channels:
'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
publish:
message:
$ref: '#/components/messages/lightMeasured'
'smartylighting/streetlights/1/0/action/{streetlightId}/turn/on':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
subscribe:
message:
$ref: '#/components/messages/turnOnOff'
'smartylighting/streetlights/1/0/action/{streetlightId}/turn/off':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
subscribe:
message:
$ref: '#/components/messages/turnOnOff'
'smartylighting/streetlights/1/0/action/{streetlightId}/dim':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
subscribe:
message:
$ref: '#/components/messages/dimLight'
113 changes: 113 additions & 0 deletions test/output/2.3.0/streetlights.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
asyncapi: 2.3.0
info:
title: Streetlights API
version: 1.0.0
description: "The Smartylighting Streetlights API allows you to remotely manage the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off \U0001F303\n* Dim a specific streetlight \U0001F60E\n* Receive real-time information about environmental lighting conditions \U0001F4C8\n"
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
servers:
default:
url: 'api.streetlights.smartylighting.com:{port}'
description: Test broker
variables:
port:
description: Secure connection (TLS) is available through port 8883.
default: '1883'
enum:
- '1883'
- '8883'
protocol: mqtt
security:
- apiKey: []
components:
messages:
lightMeasured:
summary: >-
Inform about environmental lighting conditions for a particular
streetlight.
payload:
$ref: '#/components/schemas/lightMeasuredPayload'
turnOnOff:
summary: Command a particular streetlight to turn the lights on or off.
payload:
$ref: '#/components/schemas/turnOnOffPayload'
dimLight:
summary: Command a particular streetlight to dim the lights.
payload:
$ref: '#/components/schemas/dimLightPayload'
schemas:
lightMeasuredPayload:
type: object
properties:
lumens:
type: integer
minimum: 0
description: Light intensity measured in lumens.
sentAt:
$ref: '#/components/schemas/sentAt'
turnOnOffPayload:
type: object
properties:
command:
type: string
enum:
- 'on'
- 'off'
description: Whether to turn on or off the light.
sentAt:
$ref: '#/components/schemas/sentAt'
dimLightPayload:
type: object
properties:
percentage:
type: integer
description: Percentage to which the light should be dimmed to.
minimum: 0
maximum: 100
sentAt:
$ref: '#/components/schemas/sentAt'
sentAt:
type: string
format: date-time
description: Date and time when the message was sent.
securitySchemes:
apiKey:
type: apiKey
in: user
description: Provide your API key as the user and leave the password empty.
parameters:
streetlightId:
name: streetlightId
description: The ID of the streetlight.
schema:
type: string
channels:
'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
publish:
message:
$ref: '#/components/messages/lightMeasured'
'smartylighting/streetlights/1/0/action/{streetlightId}/turn/on':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
subscribe:
message:
$ref: '#/components/messages/turnOnOff'
'smartylighting/streetlights/1/0/action/{streetlightId}/turn/off':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
subscribe:
message:
$ref: '#/components/messages/turnOnOff'
'smartylighting/streetlights/1/0/action/{streetlightId}/dim':
parameters:
streetlightId:
$ref: '#/components/parameters/streetlightId'
subscribe:
message:
$ref: '#/components/messages/dimLight'

0 comments on commit 969e3ff

Please sign in to comment.