parse-js
Version:
Utility library for object structure conversion.
32 lines (23 loc) • 939 B
JavaScript
;
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;