Befor generating
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
||||
const MessageTrait = require('./message-trait');
|
||||
const MessageTraitable = require('./message-traitable');
|
||||
const Schema = require('./schema');
|
||||
|
||||
/**
|
||||
* Implements functions to deal with a Message object.
|
||||
* @class
|
||||
* @alias module:@asyncapi/parser#Message
|
||||
* @extends MessageTraitable
|
||||
* @returns {Message}
|
||||
*/
|
||||
class Message extends MessageTraitable {
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
uid() {
|
||||
return this.id() || this.name() || this.ext('x-parser-message-name') || Buffer.from(JSON.stringify(this._json)).toString('base64');
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {Schema}
|
||||
*/
|
||||
payload() {
|
||||
if (!this._json.payload) return null;
|
||||
return new Schema(this._json.payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {MessageTrait[]}
|
||||
*/
|
||||
traits() {
|
||||
const traits = this._json['x-parser-original-traits'] || this._json.traits;
|
||||
if (!traits) return [];
|
||||
return traits.map(t => new MessageTrait(t));
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
hasTraits() {
|
||||
return !!this._json['x-parser-original-traits'] || !!this._json.traits;
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {any}
|
||||
*/
|
||||
originalPayload() {
|
||||
return this._json['x-parser-original-payload'] || this.payload();
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
originalSchemaFormat() {
|
||||
return this._json['x-parser-original-schema-format'] || this.schemaFormat();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Message;
|
||||
Reference in New Issue
Block a user