unserializable
Version:
Utilities for converting unserializable JavaScript objects and instances to serializable objects and vice versa.
139 lines (119 loc) • 2.74 kB
JavaScript
;
exports.__esModule = true;
exports.getType = getType;
var unserializable = {
Map: (function (_Map) {
function Map(_x) {
return _Map.apply(this, arguments);
}
Map.toString = function () {
return _Map.toString();
};
return Map;
})(function (value) {
return new Map(value);
}),
Set: (function (_Set) {
function Set(_x2) {
return _Set.apply(this, arguments);
}
Set.toString = function () {
return _Set.toString();
};
return Set;
})(function (value) {
return new Set(value);
}),
Date: (function (_Date) {
function Date(_x3) {
return _Date.apply(this, arguments);
}
Date.toString = function () {
return _Date.toString();
};
return Date;
})(function (value) {
return new Date(value);
}),
RegExp: (function (_RegExp) {
function RegExp(_x4) {
return _RegExp.apply(this, arguments);
}
RegExp.toString = function () {
return _RegExp.toString();
};
return RegExp;
})(function (value) {
var lastSlash = value.lastIndexOf('/');
return new RegExp(value.slice(1, lastSlash), value.slice(lastSlash + 1));
})
};
exports.unserializable = unserializable;
var serializable = {
Map: function Map(value) {
return Array.from(value);
},
Set: function Set(value) {
return Array.from(value);
},
Date: function Date(value) {
return value.getTime();
},
RegExp: function RegExp(value) {
return value.toString();
}
};
exports.serializable = serializable;
var typeChecks = {
Map: (function (_Map2) {
function Map(_x5) {
return _Map2.apply(this, arguments);
}
Map.toString = function () {
return _Map2.toString();
};
return Map;
})(function (value) {
return value instanceof Map;
}),
Set: (function (_Set2) {
function Set(_x6) {
return _Set2.apply(this, arguments);
}
Set.toString = function () {
return _Set2.toString();
};
return Set;
})(function (value) {
return value instanceof Set;
}),
Date: (function (_Date2) {
function Date(_x7) {
return _Date2.apply(this, arguments);
}
Date.toString = function () {
return _Date2.toString();
};
return Date;
})(function (value) {
return value instanceof Date;
}),
RegExp: (function (_RegExp2) {
function RegExp(_x8) {
return _RegExp2.apply(this, arguments);
}
RegExp.toString = function () {
return _RegExp2.toString();
};
return RegExp;
})(function (value) {
return value instanceof RegExp;
})
};
function getType(value) {
for (var type in typeChecks) {
if (typeChecks[type](value)) {
return type;
}
}
}