sg-socket-client
Version:
Web socket client for SUGOS
49 lines (43 loc) • 3.53 kB
JavaScript
/**
* Extension for locking
* @mixin LockExtension
*/
;
var _Object$freeze = require("@babel/runtime/core-js/object/freeze");
var _require = require('sg-socket-constants'),
LockingEvents = _require.LockingEvents;
var LOCK = LockingEvents.LOCK,
UNLOCK = LockingEvents.UNLOCK;
/** @lends LockExtension */
var LockExtension = _Object$freeze({
/**
* Lock a resource
* @param {string} name - Name of resource to lock
* @param {Object} [options] - Optional settings
* @returns {Promise}
*/
lock: function lock(name) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var id = this.id;
return this.call(LOCK, {
name: name,
by: id
}, options);
},
/**
* Lock a resource
* @param {string} name - Name of resource to unlock
* @param {Object} [options] - Optional settings
* @returns {Promise}
*/
unlock: function unlock(name) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var id = this.id;
return this.call(UNLOCK, {
name: name,
by: id
});
}
});
module.exports = LockExtension;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4dGVuc2lvbnMvbG9ja19leHRlbnNpb24uanMiXSwibmFtZXMiOlsicmVxdWlyZSIsIkxvY2tpbmdFdmVudHMiLCJMT0NLIiwiVU5MT0NLIiwiTG9ja0V4dGVuc2lvbiIsImxvY2siLCJuYW1lIiwib3B0aW9ucyIsImlkIiwiY2FsbCIsImJ5IiwidW5sb2NrIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQTs7OztlQUV3QkEsUUFBUSxxQkFBUixDO0lBQWpCQyxhLFlBQUFBLGE7O0lBQ0FDLEksR0FBZ0JELGEsQ0FBaEJDLEk7SUFBTUMsTSxHQUFVRixhLENBQVZFLE07QUFFYjs7QUFDQSxJQUFNQyxnQkFBZ0IsZUFBYztBQUNsQzs7Ozs7O0FBTUFDLE1BUGtDLGdCQU81QkMsSUFQNEIsRUFPUjtBQUFBLFFBQWRDLE9BQWMsdUVBQUosRUFBSTtBQUFBLFFBQ2pCQyxFQURpQixHQUNYLElBRFcsQ0FDakJBLEVBRGlCO0FBRXhCLFdBQU8sS0FBS0MsSUFBTCxDQUFVUCxJQUFWLEVBQWdCO0FBQUNJLGdCQUFEO0FBQU9JLFVBQUlGO0FBQVgsS0FBaEIsRUFBZ0NELE9BQWhDLENBQVA7QUFDRCxHQVZpQzs7QUFXbEM7Ozs7OztBQU1BSSxRQWpCa0Msa0JBaUIxQkwsSUFqQjBCLEVBaUJOO0FBQUEsUUFBZEMsT0FBYyx1RUFBSixFQUFJO0FBQUEsUUFDbkJDLEVBRG1CLEdBQ2IsSUFEYSxDQUNuQkEsRUFEbUI7QUFFMUIsV0FBTyxLQUFLQyxJQUFMLENBQVVOLE1BQVYsRUFBa0I7QUFBQ0csZ0JBQUQ7QUFBT0ksVUFBSUY7QUFBWCxLQUFsQixDQUFQO0FBQ0Q7QUFwQmlDLENBQWQsQ0FBdEI7O0FBdUJBSSxPQUFPQyxPQUFQLEdBQWlCVCxhQUFqQiIsImZpbGUiOiJleHRlbnNpb25zL2xvY2tfZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZW5zaW9uIGZvciBsb2NraW5nXG4gKiBAbWl4aW4gTG9ja0V4dGVuc2lvblxuICovXG4ndXNlIHN0cmljdCdcblxuY29uc3Qge0xvY2tpbmdFdmVudHN9ID0gcmVxdWlyZSgnc2ctc29ja2V0LWNvbnN0YW50cycpXG5jb25zdCB7TE9DSywgVU5MT0NLfSA9IExvY2tpbmdFdmVudHNcblxuLyoqIEBsZW5kcyBMb2NrRXh0ZW5zaW9uICovXG5jb25zdCBMb2NrRXh0ZW5zaW9uID0gT2JqZWN0LmZyZWV6ZSh7XG4gIC8qKlxuICAgKiBMb2NrIGEgcmVzb3VyY2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBOYW1lIG9mIHJlc291cmNlIHRvIGxvY2tcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIE9wdGlvbmFsIHNldHRpbmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgbG9jayAobmFtZSwgb3B0aW9ucyA9IFtdKSB7XG4gICAgY29uc3Qge2lkfSA9IHRoaXNcbiAgICByZXR1cm4gdGhpcy5jYWxsKExPQ0ssIHtuYW1lLCBieTogaWR9LCBvcHRpb25zKVxuICB9LFxuICAvKipcbiAgICogTG9jayBhIHJlc291cmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTmFtZSBvZiByZXNvdXJjZSB0byB1bmxvY2tcbiAgICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXSAtIE9wdGlvbmFsIHNldHRpbmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgdW5sb2NrIChuYW1lLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB7aWR9ID0gdGhpc1xuICAgIHJldHVybiB0aGlzLmNhbGwoVU5MT0NLLCB7bmFtZSwgYnk6IGlkfSlcbiAgfVxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBMb2NrRXh0ZW5zaW9uXG4iXX0=