socket-actions
Version:
Websocket implementation to simplify communication and queueing of user actions.
30 lines (26 loc) • 778 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
class Action {
constructor() {
this.server = null;
}
async prepareAction(server) {
this.server = server;
}
onCheckPermissions(_parameters) { }
onError(_parameters, err) {
console.error(err);
}
async run(parameters) {
try {
await this.onCheckPermissions(parameters);
const { socket, requestId } = parameters;
const respond = (data) => socket.send(JSON.stringify({ requestId, data }));
await this.onRun(Object.assign(Object.assign({}, parameters), { respond }));
}
catch (err) {
await this.onError(parameters, err);
}
}
}
exports.default = Action;