UNPKG

fmtjson

Version:
53 lines (42 loc) 3.84 kB
/** * @function sortProperties * @private */ 'use strict'; /** @lends sortProperties */ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); function sortProperties(data) { if (!data) { return data; } if (Array.isArray(data)) { return data.map(sortProperties); } switch ((0, _typeof2["default"])(data)) { case 'string': case 'number': case 'boolean': return data; default: break; } var sorted = {}; var keys = Object.keys(data).sort(function (a, b) { return a.localeCompare(b); }); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var val = data[key]; if (Array.isArray(val)) { sorted[key] = val; } else if ((0, _typeof2["default"])(val) === 'object') { sorted[key] = sortProperties(val); } else { sorted[key] = val; } } return sorted; } module.exports = sortProperties; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvcnRfcHJvcGVydGllcy5qcyJdLCJuYW1lcyI6WyJzb3J0UHJvcGVydGllcyIsImRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJzb3J0ZWQiLCJrZXlzIiwiT2JqZWN0Iiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsImkiLCJsZW5ndGgiLCJrZXkiLCJ2YWwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUtBO0FBRUE7Ozs7OztBQUNBLFNBQVNBLGNBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQzdCLE1BQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsV0FBT0EsSUFBUDtBQUNEOztBQUNELE1BQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixJQUFkLENBQUosRUFBeUI7QUFDdkIsV0FBT0EsSUFBSSxDQUFDRyxHQUFMLENBQVNKLGNBQVQsQ0FBUDtBQUNEOztBQUNELG1DQUFlQyxJQUFmO0FBQ0UsU0FBSyxRQUFMO0FBQ0EsU0FBSyxRQUFMO0FBQ0EsU0FBSyxTQUFMO0FBQ0UsYUFBT0EsSUFBUDs7QUFDRjtBQUNFO0FBTko7O0FBUUEsTUFBTUksTUFBTSxHQUFHLEVBQWY7QUFDQSxNQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0QsSUFBUCxDQUFZTCxJQUFaLEVBQWtCTyxJQUFsQixDQUF1QixVQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxXQUFVRCxDQUFDLENBQUNFLGFBQUYsQ0FBZ0JELENBQWhCLENBQVY7QUFBQSxHQUF2QixDQUFiOztBQUNBLE9BQUssSUFBSUUsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR04sSUFBSSxDQUFDTyxNQUF6QixFQUFpQ0QsQ0FBQyxFQUFsQyxFQUFzQztBQUNwQyxRQUFNRSxHQUFHLEdBQUdSLElBQUksQ0FBQ00sQ0FBRCxDQUFoQjtBQUNBLFFBQU1HLEdBQUcsR0FBR2QsSUFBSSxDQUFDYSxHQUFELENBQWhCOztBQUNBLFFBQUlaLEtBQUssQ0FBQ0MsT0FBTixDQUFjWSxHQUFkLENBQUosRUFBd0I7QUFDdEJWLE1BQUFBLE1BQU0sQ0FBQ1MsR0FBRCxDQUFOLEdBQWNDLEdBQWQ7QUFDRCxLQUZELE1BRU8sSUFBSSx5QkFBT0EsR0FBUCxNQUFlLFFBQW5CLEVBQTZCO0FBQ2xDVixNQUFBQSxNQUFNLENBQUNTLEdBQUQsQ0FBTixHQUFjZCxjQUFjLENBQUNlLEdBQUQsQ0FBNUI7QUFDRCxLQUZNLE1BRUE7QUFDTFYsTUFBQUEsTUFBTSxDQUFDUyxHQUFELENBQU4sR0FBY0MsR0FBZDtBQUNEO0FBQ0Y7O0FBQ0QsU0FBT1YsTUFBUDtBQUNEOztBQUVEVyxNQUFNLENBQUNDLE9BQVAsR0FBaUJqQixjQUFqQiIsInNvdXJjZVJvb3QiOiIuLi8uLi9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmdW5jdGlvbiBzb3J0UHJvcGVydGllc1xuICogQHByaXZhdGVcbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuLyoqIEBsZW5kcyBzb3J0UHJvcGVydGllcyAqL1xuZnVuY3Rpb24gc29ydFByb3BlcnRpZXMgKGRhdGEpIHtcbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhLm1hcChzb3J0UHJvcGVydGllcylcbiAgfVxuICBzd2l0Y2ggKHR5cGVvZiBkYXRhKSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICBjYXNlICdudW1iZXInOlxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgcmV0dXJuIGRhdGFcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWtcbiAgfVxuICBjb25zdCBzb3J0ZWQgPSB7fVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZGF0YSkuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzW2ldXG4gICAgY29uc3QgdmFsID0gZGF0YVtrZXldXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgc29ydGVkW2tleV0gPSB2YWxcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICBzb3J0ZWRba2V5XSA9IHNvcnRQcm9wZXJ0aWVzKHZhbClcbiAgICB9IGVsc2Uge1xuICAgICAgc29ydGVkW2tleV0gPSB2YWxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNvcnRlZFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNvcnRQcm9wZXJ0aWVzXG4iXX0=