@data-client/endpoint
Version:
Declarative Network Interface Definitions
15 lines • 1.94 kB
JavaScript
/** This serializes in consistent way even if members are added in differnet orders */
export function consistentSerialize(obj) {
let keys = Object.keys(obj);
// sort doesn't always work in RN
try {
keys = keys.sort();
// eslint-disable-next-line no-empty
} catch (_unused) {}
const sortedObj = {};
for (const key of keys) {
sortedObj[key] = obj[key];
}
return JSON.stringify(sortedObj);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zaXN0ZW50U2VyaWFsaXplIiwib2JqIiwia2V5cyIsIk9iamVjdCIsInNvcnQiLCJfdW51c2VkIiwic29ydGVkT2JqIiwia2V5IiwiSlNPTiIsInN0cmluZ2lmeSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL2NvbnNpc3RlbnRTZXJpYWxpemUubmF0aXZlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGlzIHNlcmlhbGl6ZXMgaW4gY29uc2lzdGVudCB3YXkgZXZlbiBpZiBtZW1iZXJzIGFyZSBhZGRlZCBpbiBkaWZmZXJuZXQgb3JkZXJzICovXG5leHBvcnQgZnVuY3Rpb24gY29uc2lzdGVudFNlcmlhbGl6ZShvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgLy8gc29ydCBkb2Vzbid0IGFsd2F5cyB3b3JrIGluIFJOXG4gIHRyeSB7XG4gICAga2V5cyA9IGtleXMuc29ydCgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxuICB9IGNhdGNoIHt9XG4gIGNvbnN0IHNvcnRlZE9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgc29ydGVkT2JqW2tleV0gPSBvYmpba2V5XTtcbiAgfVxuXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShzb3J0ZWRPYmopO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU8sU0FBU0EsbUJBQW1CQSxDQUFDQyxHQUE0QixFQUFFO0VBQ2hFLElBQUlDLElBQUksR0FBR0MsTUFBTSxDQUFDRCxJQUFJLENBQUNELEdBQUcsQ0FBQztFQUMzQjtFQUNBLElBQUk7SUFDRkMsSUFBSSxHQUFHQSxJQUFJLENBQUNFLElBQUksQ0FBQyxDQUFDO0lBQ2xCO0VBQ0YsQ0FBQyxDQUFDLE9BQUFDLE9BQUEsRUFBTSxDQUFDO0VBQ1QsTUFBTUMsU0FBa0MsR0FBRyxDQUFDLENBQUM7RUFFN0MsS0FBSyxNQUFNQyxHQUFHLElBQUlMLElBQUksRUFBRTtJQUN0QkksU0FBUyxDQUFDQyxHQUFHLENBQUMsR0FBR04sR0FBRyxDQUFDTSxHQUFHLENBQUM7RUFDM0I7RUFFQSxPQUFPQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0gsU0FBUyxDQUFDO0FBQ2xDIiwiaWdub3JlTGlzdCI6W119