UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

37 lines (28 loc) 812 B
"use strict"; var errors = require("../errors"); var Locker = function Locker() { var info = {}; var currentCount = function currentCount(lockName) { return info[lockName] || 0; }; return { obtain: function obtain(lockName) { info[lockName] = currentCount(lockName) + 1; }, release: function release(lockName) { var count = currentCount(lockName); if (count < 1) { throw errors.Error("E0014"); } if (count === 1) { delete info[lockName]; } else { info[lockName] = count - 1; } }, locked: function locked(lockName) { return currentCount(lockName) > 0; } }; }; module.exports = Locker;