@data-client/endpoint
Version:
Declarative Network Interface Definitions
15 lines • 1.9 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 {}
const sortedObj = {};
for (const key of keys) {
sortedObj[key] = obj[key];
}
return JSON.stringify(sortedObj);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25zaXN0ZW50U2VyaWFsaXplIiwib2JqIiwia2V5cyIsIk9iamVjdCIsInNvcnQiLCJzb3J0ZWRPYmoiLCJrZXkiLCJKU09OIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvY29uc2lzdGVudFNlcmlhbGl6ZS5uYXRpdmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRoaXMgc2VyaWFsaXplcyBpbiBjb25zaXN0ZW50IHdheSBldmVuIGlmIG1lbWJlcnMgYXJlIGFkZGVkIGluIGRpZmZlcm5ldCBvcmRlcnMgKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zaXN0ZW50U2VyaWFsaXplKG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAvLyBzb3J0IGRvZXNuJ3QgYWx3YXlzIHdvcmsgaW4gUk5cbiAgdHJ5IHtcbiAgICBrZXlzID0ga2V5cy5zb3J0KCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5XG4gIH0gY2F0Y2gge31cbiAgY29uc3Qgc29ydGVkT2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICBzb3J0ZWRPYmpba2V5XSA9IG9ialtrZXldO1xuICB9XG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNvcnRlZE9iaik7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyxTQUFTQSxtQkFBbUJBLENBQUNDLEdBQTRCLEVBQUU7RUFDaEUsSUFBSUMsSUFBSSxHQUFHQyxNQUFNLENBQUNELElBQUksQ0FBQ0QsR0FBRyxDQUFDO0VBQzNCO0VBQ0EsSUFBSTtJQUNGQyxJQUFJLEdBQUdBLElBQUksQ0FBQ0UsSUFBSSxDQUFDLENBQUM7SUFDbEI7RUFDRixDQUFDLENBQUMsTUFBTSxDQUFDO0VBQ1QsTUFBTUMsU0FBa0MsR0FBRyxDQUFDLENBQUM7RUFFN0MsS0FBSyxNQUFNQyxHQUFHLElBQUlKLElBQUksRUFBRTtJQUN0QkcsU0FBUyxDQUFDQyxHQUFHLENBQUMsR0FBR0wsR0FBRyxDQUFDSyxHQUFHLENBQUM7RUFDM0I7RUFFQSxPQUFPQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0gsU0FBUyxDQUFDO0FBQ2xDIiwiaWdub3JlTGlzdCI6W119