Type-accurate serialization of javascript objects
out-of-the-box support for Date, RegExp, arrays, buffers
var hydra = require('hydration')
var obj = {
date: new Date(),
regex: /^something/,
array: ['of', 747]
}
// basic
var dehydrated = hydra.dehydrate(obj)
// JSON.stringify + JSON.parse if you like
var hydrated = hydra.hydrate(dehydrated)
// hydrated deepEquals obj
you can add support for custom types yourself
var hydra = require('hydration')
function OogaBooga (name) {
this.name = name
}
var custom = hydra()
custom.addType('oogabooga', {
test: function (val) {
return val instanceof OogaBooga
},
dehydrate: function (val) {
return val.name
},
hydrate: function (val) {
return new OogaBooga(val)
}
})
var obj = {
//...
someprop: new OogaBooga('yum')
//...
}
var dehydrated = hydra.dehydrate(obj)
// JSON.stringify + JSON.parse if you like
var hydrated = hydra.hydrate(dehydrated)
Thanks to @mvayngrib for Buffer and custom type support, and documentation.
MIT