From 5552d53304a26f53172e1cc0d0f86e01131eaadd Mon Sep 17 00:00:00 2001 From: Determinant Date: Sun, 3 Feb 2019 01:14:45 -0500 Subject: use Msg objects --- src/msg.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/msg.js (limited to 'src/msg.js') diff --git a/src/msg.js b/src/msg.js new file mode 100644 index 0000000..c0aaf11 --- /dev/null +++ b/src/msg.js @@ -0,0 +1,50 @@ +const _updatePatterns = "updatePatterns"; +const _getPatterns = "getPatterns"; +const _updateCalendars = "updateCalendars"; +const _getCalendars = "getCalendars"; +const _getCalEvents = "getCalEvents"; + +export const msgType = Object.freeze({ + updatePatterns: Symbol(_updatePatterns), + getPatterns: Symbol(_getPatterns), + updateCalendars: Symbol(_updateCalendars), + getCalendars: Symbol(_getCalendars), + getCalEvents: Symbol(_getCalEvents), +}); + +function stringifyMsgType(mt) { + switch (mt) { + case msgType.updatePatterns: return _updatePatterns; + case msgType.getPatterns: return _getPatterns; + case msgType.updateCalendars: return _updateCalendars; + case msgType.getCalendars: return _getCalendars; + case msgType.getCalEvents: return _getCalEvents; + } +} + +function parseMsgType(s) { + switch(s) { + case _updatePatterns: return msgType.updatePatterns; + case _getPatterns: return msgType.getPatterns; + case _updateCalendars: return msgType.updateCalendars; + case _getCalendars: return msgType.getCalendars; + case _getCalEvents: return msgType.getCalEvents; + } +} + +export class Msg { + constructor(id, type, data) { + this.id = id; + this.type = type; + this.data = data; + } + genResp(data) { return new Msg(this.id, this.type, data); } + deflate() { + return { + id: this.id, + type: stringifyMsgType(this.type), + data: this.data + } + } + static inflate = obj => new Msg(obj.id, parseMsgType(obj.type), obj.data); +} -- cgit v1.2.3