Befor generating
This commit is contained in:
+101
@@ -0,0 +1,101 @@
|
||||
const { getMapValueOfType, mix } = require('./utils');
|
||||
|
||||
const Base = require('./base');
|
||||
const Schema = require('./schema');
|
||||
const CorrelationId = require('./correlation-id');
|
||||
|
||||
const MixinDescription = require('../mixins/description');
|
||||
const MixinExternalDocs = require('../mixins/external-docs');
|
||||
const MixinTags = require('../mixins/tags');
|
||||
const MixinBindings = require('../mixins/bindings');
|
||||
const MixinSpecificationExtensions = require('../mixins/specification-extensions');
|
||||
|
||||
/**
|
||||
* Implements functions to deal with a the common properties that Message and MessageTrait objects have.
|
||||
* @class
|
||||
* @alias module:@asyncapi/parser#MessageTraitable
|
||||
* @extends Base
|
||||
* @mixes MixinDescription
|
||||
* @mixes MixinTags
|
||||
* @mixes MixinExternalDocs
|
||||
* @mixes MixinBindings
|
||||
* @mixes MixinSpecificationExtensions
|
||||
* @returns {MessageTraitable}
|
||||
*/
|
||||
class MessageTraitable extends Base {
|
||||
/**
|
||||
* @returns {Schema}
|
||||
*/
|
||||
headers() {
|
||||
if (!this._json.headers) return null;
|
||||
return new Schema(this._json.headers);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name - Name of the header.
|
||||
* @returns {Schema}
|
||||
*/
|
||||
header(name) {
|
||||
if (!this._json.headers) return null;
|
||||
return getMapValueOfType(this._json.headers.properties, name, Schema);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
id() {
|
||||
return this._json.messageId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {CorrelationId}
|
||||
*/
|
||||
correlationId() {
|
||||
if (!this._json.correlationId) return null;
|
||||
return new CorrelationId(this._json.correlationId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
schemaFormat() {
|
||||
return this._json.schemaFormat;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
contentType() {
|
||||
return this._json.contentType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
name() {
|
||||
return this._json.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
title() {
|
||||
return this._json.title;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
summary() {
|
||||
return this._json.summary;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {any[]}
|
||||
*/
|
||||
examples() {
|
||||
return this._json.examples;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = mix(MessageTraitable, MixinDescription, MixinTags, MixinExternalDocs, MixinBindings, MixinSpecificationExtensions);
|
||||
Reference in New Issue
Block a user