surreal
Version:
Map javascript object property names to aliases for optimal serialized document storage
41 lines • 1.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Surreal = void 0;
var tslib_1 = require("tslib");
var serializer_1 = require("./serializer");
function Surreal(transformer) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
var serializer;
if (typeof (transformer) === 'function') {
serializer = new (transformer.bind.apply(transformer, tslib_1.__spreadArrays([void 0], args)))();
}
else if (transformer instanceof Array) {
var props = transformer;
serializer = new serializer_1.ArraySerializer(props);
}
else {
var map = transformer;
var useMappedPropertyName = args[0];
serializer = new serializer_1.MapSerializer(map, useMappedPropertyName);
}
return {
serializer: serializer,
serializable: function (target) {
if (!target)
target = function fresh() { return; };
target.prototype.toJSON = function () {
return serializer.serialize(this);
};
target.prototype.fromJSON = function (record) {
serializer.deserialize(record, this);
return this;
};
return target;
}
};
}
exports.Surreal = Surreal;
//# sourceMappingURL=index.js.map
;