47 lines
915 B
JavaScript
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;
|