mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 01:53:33 -06:00
* Update dependency prettier to v2.5.1 * prettier fixes * chore(toolkit): bump prettier to 2.5.1 * style(eslint): bump grafana config to 2.5.2 in core and toolkit * style(mssql-datasource): fix no-inferrable-types eslint errors Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com> Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
21 lines
578 B
TypeScript
21 lines
578 B
TypeScript
import { isArray, isPlainObject } from 'lodash';
|
|
|
|
/** @returns a deep clone of the object, but with any null value removed */
|
|
export function sortedDeepCloneWithoutNulls<T>(value: T): T {
|
|
if (isArray(value)) {
|
|
return value.map(sortedDeepCloneWithoutNulls) as unknown as T;
|
|
}
|
|
if (isPlainObject(value)) {
|
|
return Object.keys(value)
|
|
.sort()
|
|
.reduce((acc: any, key) => {
|
|
const v = (value as any)[key];
|
|
if (v != null) {
|
|
acc[key] = sortedDeepCloneWithoutNulls(v);
|
|
}
|
|
return acc;
|
|
}, {});
|
|
}
|
|
return value;
|
|
}
|