File size: 366 Bytes
d9494a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export function orderObjectProperties<T>(data: T): T {
  if (Array.isArray(data)) {
    return data.map(orderObjectProperties) as T;
  }

  if (data !== null && typeof data === 'object') {
    return Object.fromEntries(
      Object.entries(data)
        .sort()
        .map(([key, value]) => [key, orderObjectProperties(value)]),
    ) as T;
  }

  return data;
}