moleculer
Version:
Fast & powerful microservices framework for Node.JS
65 lines (57 loc) • 1.26 kB
JavaScript
/*
* moleculer
* Copyright (c) 2017 Ice Services (https://github.com/ice-services/moleculer)
* MIT Licensed
*/
;
const BaseSerializer = require("./base");
/**
* MessagePack serializer for Moleculer
*
* https://github.com/mcollina/msgpack5
*
* @class MsgPackSerializer
*/
class MsgPackSerializer extends BaseSerializer {
/**
* Initialize Serializer
*
* @param {any} broker
*
* @memberOf Serializer
*/
init(broker) {
super.init(broker);
try {
this.msgpack = require("msgpack5")();
} catch(err) {
/* istanbul ignore next */
this.broker.fatal("The 'msgpack5' package is missing! Please install it with 'npm install msgpack5 --save' command!", err, true);
}
}
/**
* Serializer a JS object to string or Buffer
*
* @param {Object} obj
* @returns {String|Buffer}
*
* @memberOf Serializer
*/
serialize(obj) {
const res = this.msgpack.encode(obj);
return res;
}
/**
* Deserialize string/Buffer to JS object
*
* @param {String|Buffer} str
* @returns {Object}
*
* @memberOf Serializer
*/
deserialize(str) {
const res = this.msgpack.decode(str);
return res;
}
}
module.exports = MsgPackSerializer;