@onesy/utils
Version:
43 lines (34 loc) • 1.38 kB
JavaScript
import getEnvironment from './getEnvironment';
import setObjectValue from './setObjectValue';
const optionsDefault = {
returnSame: true
};
const parse = function (value) {
let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'JSON';
let options_ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
const options = { ...optionsDefault,
...options_
};
switch (type) {
case 'JSON':
try {
return JSON.parse(value);
} catch (error) {
if (options.log) {
var _env$ONESY;
console.error('Parse JSON: ', error);
const env = getEnvironment();
if (((_env$ONESY = env.ONESY) === null || _env$ONESY === void 0 ? void 0 : _env$ONESY.env) === 'test') {
var _env$ONESY2, _env$ONESY2$test, _env$ONESY2$test$pars;
if (!((_env$ONESY2 = env.ONESY) !== null && _env$ONESY2 !== void 0 && (_env$ONESY2$test = _env$ONESY2.test) !== null && _env$ONESY2$test !== void 0 && (_env$ONESY2$test$pars = _env$ONESY2$test.parse) !== null && _env$ONESY2$test$pars !== void 0 && _env$ONESY2$test$pars.logs)) setObjectValue(env, 'ONESY.test.parse.logs', []);
env.ONESY.test.parse.logs.push(error);
}
}
}
break;
default:
break;
}
if (options.returnSame) return value;
};
export default parse;