ravendb
Version:
RavenDB client for Node.js
37 lines • 1.12 kB
JavaScript
import { pascalCaseReplacer } from "./Replacers.js";
import { camelCaseReviver } from "./Revivers.js";
export class JsonSerializer {
_reviver;
_replacer;
constructor(reviver, replacer) {
this._reviver = reviver;
this._replacer = replacer;
}
deserialize(jsonString) {
return JSON.parse(jsonString, this._reviver);
}
serialize(obj) {
return JSON.stringify(obj, this._replacer);
}
/**
* Serializer which doesn't touch casing - just using build-in JS functions like
* stringify and parse.
*/
static getDefault() {
return new JsonSerializer(undefined, undefined);
}
/**
* Serialization changes from camelCasing to PascalCasing
* Deserialization changes from PascalCasing to camelCasing
*/
static getDefaultForCommandPayload() {
return new JsonSerializer(camelCaseReviver, pascalCaseReplacer);
}
static toPlainObject(obj) {
if (obj === undefined) {
return undefined;
}
return JSON.parse(JSON.stringify(obj));
}
}
//# sourceMappingURL=Serializer.js.map