node-jet
Version:
Jet Realtime Message Bus for the Web. Daemon and Peer implementation.
52 lines (51 loc) • 1.74 kB
JavaScript
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;
}
};