UNPKG

json_

Version:

Converts camelCase JavaScript objects to JSON snake_case and vise versa.

42 lines (35 loc) 1.22 kB
var snakeToCamelCase = function snakeToCamelCase(key) { return (// first_name -> firstName, isbn_10 -> isbn10, scores_a_1 -> scoresA1 key.replace(/(_+[a-z0-9])/g, function (snip) { return snip.toUpperCase().replace('_', ''); }) ); }; var camelToSnakeCase = function camelToSnakeCase(key) { return (// firstName -> first_name, isbn10 -> isbn_10, scoresA1 -> scores_a_1 key.replace(/([A-Za-z])([0-9])/g, function (_unused, _char, digit) { return _char + '_' + digit; }).replace(/([A-Z])/g, function (snip) { return '_' + snip.toLowerCase(); }) ); }; function parse(responseOrText, reviver) { if (typeof responseOrText === 'string') { var text = responseOrText.replace(/"([^"]*)"\s*:/g, snakeToCamelCase); return JSON.parse(text, reviver); } return responseOrText.text().then(function (text) { return JSON_.parse(text, reviver); }); // Assume text is a Response object from fetch. } function stringify(value, replacer, space) { var str = JSON.stringify(value, replacer, space); return str.replace(/"([^"]*)"\s*:/g, camelToSnakeCase); } var JSON_ = { parse: parse, stringify: stringify }; export default JSON_; //# sourceMappingURL=json.esm.js.map