UNPKG

socketcluster-server

Version:
41 lines (33 loc) 1.38 kB
const scErrors = require('sc-errors'); const InvalidActionError = scErrors.InvalidActionError; function AGAction() { this.outcome = null; this.promise = new Promise((resolve, reject) => { this._resolve = resolve; this._reject = reject; }); this.allow = (packet) => { if (this.outcome) { throw new InvalidActionError(`AGAction ${this.type} has already been ${this.outcome}; cannot allow`); } this.outcome = 'allowed'; this._resolve(packet); }; this.block = (error) => { if (this.outcome) { throw new InvalidActionError(`AGAction ${this.type} has already been ${this.outcome}; cannot block`); } this.outcome = 'blocked'; this._reject(error); }; } AGAction.prototype.HANDSHAKE_WS = AGAction.HANDSHAKE_WS = 'handshakeWS'; AGAction.prototype.HANDSHAKE_SC = AGAction.HANDSHAKE_SC = 'handshakeSC'; AGAction.prototype.MESSAGE = AGAction.MESSAGE = 'message'; AGAction.prototype.TRANSMIT = AGAction.TRANSMIT = 'transmit'; AGAction.prototype.INVOKE = AGAction.INVOKE = 'invoke'; AGAction.prototype.SUBSCRIBE = AGAction.SUBSCRIBE = 'subscribe'; AGAction.prototype.PUBLISH_IN = AGAction.PUBLISH_IN = 'publishIn'; AGAction.prototype.PUBLISH_OUT = AGAction.PUBLISH_OUT = 'publishOut'; AGAction.prototype.AUTHENTICATE = AGAction.AUTHENTICATE = 'authenticate'; module.exports = AGAction;