UNPKG

parse-js

Version:

Utility library for object structure conversion.

32 lines (23 loc) 939 B
'use strict'; var parseJSON = require('../lib/json').parse; var getDefault = require('../lib/default').getDefault; var isDefaultEnabled = require('../lib/default').isDefaultEnabled; function JSONTransformer() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (!(this instanceof JSONTransformer)) { return this.transform(new JSONTransformer(options)); } this._defaultValue = options.defaultValue; } JSONTransformer.prototype.parse = function (value, parse) { if (typeof value !== 'string') return value; var result = parseJSON(value); if (result !== null) return result; return getDefault(parse, this._defaultValue, result); }; JSONTransformer.prototype.reverse = function (value, parse) { if (isDefaultEnabled(parse)) return JSON.stringify(value); if (typeof value === 'undefined') return void 0; return JSON.stringify(value); }; module.exports = JSONTransformer;