UNPKG

json_

Version:

Converts camelCase JavaScript objects to JSON snake_case and vise versa.

46 lines (37 loc) 1.32 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); 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 }; exports.default = JSON_; //# sourceMappingURL=json.cjs.development.js.map