UNPKG

node-jet

Version:

Jet Realtime Message Bus for the Web. Daemon and Peer implementation.

52 lines (51 loc) 1.74 kB
import { InvalidArgument, invalidRequest } from './errors.js'; export const castMessage = (msg) => { if (!('method' in msg)) throw new invalidRequest('No method'); const method = msg.method; const { params } = msg; switch (method) { case 'info': return msg; case 'authenticate': if (!params || !('user' in params) || !('password' in params)) { throw new InvalidArgument('Only params.user & params.password supported'); } return msg; case 'addUser': if (!params || !('user' in params) || !('password' in params) || !('groups' in params)) { throw new InvalidArgument('params.user, params.password & params.groups required'); } return msg; case 'configure': if (!params || !('name' in params)) { throw new InvalidArgument('Only params.name supported'); } return msg; case 'unfetch': if (!params || !('id' in params)) { throw new InvalidArgument('Fetch id required'); } return msg; default: if (!params || !('path' in params)) { throw new InvalidArgument('Path required'); } } switch (method) { case 'fetch': if (!('id' in params)) throw new InvalidArgument('Fetch id required'); return msg; case 'change': case 'set': if (!('value' in params)) throw new InvalidArgument('Value required'); return msg; default: return msg; } };