metallic-launcher
Version:
Service launcher for metallic
37 lines (28 loc) • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SERVER = exports.LEADER = undefined;
var _cluster = require('cluster');
var _metallicErrors = require('metallic-errors');
const LEADER = exports.LEADER = Symbol('leader');
const SERVER = exports.SERVER = Symbol('server');
class Role {
constructor() {
throw new _metallicErrors.AbstractClassError(Role.name);
}
static isLeader(clusterOn) {
return clusterOn && _cluster.isMaster;
}
static isServer(clusterOn) {
return !this.isLeader(clusterOn);
}
static get(clusterOn) {
return this.isLeader(clusterOn) ? LEADER : SERVER;
}
static getName(clusterOn) {
return this.isLeader(clusterOn) ? 'leader' : 'server';
}
}
exports.default = Role;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyL3JvbGUuanMiXSwibmFtZXMiOlsiTEVBREVSIiwiU3ltYm9sIiwiU0VSVkVSIiwiUm9sZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImlzTGVhZGVyIiwiY2x1c3Rlck9uIiwiaXNTZXJ2ZXIiLCJnZXQiLCJnZXROYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sTUFBTUEsMEJBQVNDLE9BQU8sUUFBUCxDQUFmO0FBQ0EsTUFBTUMsMEJBQVNELE9BQU8sUUFBUCxDQUFmOztBQUVRLE1BQU1FLElBQU4sQ0FBVztBQUN4QkMsZ0JBQWU7QUFDYixVQUFNLHVDQUF1QkQsS0FBS0UsSUFBNUIsQ0FBTjtBQUNEOztBQUVELFNBQU9DLFFBQVAsQ0FBaUJDLFNBQWpCLEVBQTRCO0FBQzFCLFdBQU9BLDhCQUFQO0FBQ0Q7O0FBRUQsU0FBT0MsUUFBUCxDQUFpQkQsU0FBakIsRUFBNEI7QUFDMUIsV0FBTyxDQUFDLEtBQUtELFFBQUwsQ0FBY0MsU0FBZCxDQUFSO0FBQ0Q7O0FBRUQsU0FBT0UsR0FBUCxDQUFZRixTQUFaLEVBQXVCO0FBQ3JCLFdBQU8sS0FBS0QsUUFBTCxDQUFjQyxTQUFkLElBQTJCUCxNQUEzQixHQUFvQ0UsTUFBM0M7QUFDRDs7QUFFRCxTQUFPUSxPQUFQLENBQWdCSCxTQUFoQixFQUEyQjtBQUN6QixXQUFPLEtBQUtELFFBQUwsQ0FBY0MsU0FBZCxJQUEyQixRQUEzQixHQUFzQyxRQUE3QztBQUNEO0FBbkJ1QjtrQkFBTEosSSIsImZpbGUiOiJyb2xlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNYXN0ZXIgfSBmcm9tICdjbHVzdGVyJ1xuaW1wb3J0IHsgQWJzdHJhY3RDbGFzc0Vycm9yIH0gZnJvbSAnbWV0YWxsaWMtZXJyb3JzJ1xuXG5leHBvcnQgY29uc3QgTEVBREVSID0gU3ltYm9sKCdsZWFkZXInKVxuZXhwb3J0IGNvbnN0IFNFUlZFUiA9IFN5bWJvbCgnc2VydmVyJylcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUm9sZSB7XG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aHJvdyBuZXcgQWJzdHJhY3RDbGFzc0Vycm9yKFJvbGUubmFtZSlcbiAgfVxuXG4gIHN0YXRpYyBpc0xlYWRlciAoY2x1c3Rlck9uKSB7XG4gICAgcmV0dXJuIGNsdXN0ZXJPbiAmJiBpc01hc3RlclxuICB9XG5cbiAgc3RhdGljIGlzU2VydmVyIChjbHVzdGVyT24pIHtcbiAgICByZXR1cm4gIXRoaXMuaXNMZWFkZXIoY2x1c3Rlck9uKVxuICB9XG5cbiAgc3RhdGljIGdldCAoY2x1c3Rlck9uKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNMZWFkZXIoY2x1c3Rlck9uKSA/IExFQURFUiA6IFNFUlZFUlxuICB9XG5cbiAgc3RhdGljIGdldE5hbWUgKGNsdXN0ZXJPbikge1xuICAgIHJldHVybiB0aGlzLmlzTGVhZGVyKGNsdXN0ZXJPbikgPyAnbGVhZGVyJyA6ICdzZXJ2ZXInXG4gIH1cbn1cbiJdfQ==