UNPKG

@barchart/common-node-js

Version:

Common classes, utilities, and functions for building Node.js servers

50 lines (40 loc) 986 B
const assert = require('@barchart/common-js/lang/assert'); const DelegateSerializer = require('./DelegateSerializer'), StringSerializer = require('./StringSerializer'); module.exports = (() => { 'use strict'; /** * Converts an object into (and back from) the representation used * on a DynamoDB record using JSON strings. * * @public * @extends {DelegateSerializer} */ class JsonSerializer extends DelegateSerializer { constructor() { super(StringSerializer.INSTANCE, serializeJson, deserializeJson); } /** * A singleton. * * @public * @static * @returns {JsonSerializer} */ static get INSTANCE() { return instance; } toString() { return '[JsonSerializer]'; } } function serializeJson(value) { assert.argumentIsRequired(value, 'value', Object); return JSON.stringify(value); } function deserializeJson(value) { return JSON.parse(value); } const instance = new JsonSerializer(); return JsonSerializer; })();