UNPKG

diffusion

Version:

Diffusion JavaScript client

26 lines (19 loc) 1.04 kB
var Codec = require('io/codec'); var Configuration = require('features/security').SystemAuthentication; var ByteEncodedEnumSerialiser = require('serialisers/byte-encoded-enum-serialiser'); var SystemPrincipalSerialiser = require('./system-principal-serialiser'); var serialiser = { read : function(input) { var principals = Codec.readCollection(input, SystemPrincipalSerialiser.read); var action = ByteEncodedEnumSerialiser.read(input, Configuration.CONNECTION_ACTION); var roles = Codec.readCollection(input, Codec.readString); return new Configuration(principals, action.value, roles); }, write : function(output, value) { Codec.writeCollection(output, value.principals, SystemPrincipalSerialiser.write); var action = Configuration.CONNECTION_ACTION.fromString(value.anonymous.action); Codec.writeByte(output, action.id); Codec.writeCollection(output, value.anonymous.roles, Codec.writeString); } }; module.exports = serialiser;