Files
nats-python/openapi_templete/node_modules/@asyncapi/parser/lib/mixins/bindings.js
T
2026-06-01 13:17:37 +02:00

47 lines
915 B
JavaScript

const { getMapValueByKey } = require('../models/utils');
/**
* Implements functions to deal with the common Bindings object.
* @mixin
*/
const MixinBindings = {
/**
* @returns {boolean}
*/
hasBindings() {
return !!(this._json.bindings && Object.keys(this._json.bindings).length);
},
/**
* @returns {Object}
*/
bindings() {
return this.hasBindings() ? this._json.bindings : {};
},
/**
* @returns {string[]}
*/
bindingProtocols() {
return Object.keys(this.bindings());
},
/**
* @param {string} name - Name of the binding.
* @returns {boolean}
*/
hasBinding(name) {
return this.hasBindings() && !!this._json.bindings[String(name)];
},
/**
* @param {string} name - Name of the binding.
* @returns {(Object | null)}
*/
binding(name) {
return getMapValueByKey(this._json.bindings, name);
},
};
module.exports = MixinBindings;