feat(frontend): created `pruneObject` and `pruneArray` utilities

pull/81/head
Samuel Rowe 3 years ago
parent a3e958b529
commit 499a28e4c0

@ -1,3 +1,5 @@
import lodash from "lodash";
export const checkArray = <T>(array: any, name: string): T => {
if (!Array.isArray(array)) {
throw new Error(
@ -6,3 +8,19 @@ export const checkArray = <T>(array: any, name: string): T => {
}
return array as unknown as T;
};
export const pruneArray = <T>(array: (T | undefined)[]): T[] | undefined => {
const result = array.filter(Boolean);
if (array.length === 0) {
return undefined;
}
return result as T[];
};
export const pruneObject = <T>(object: T): unknown | undefined => {
const result = lodash.pickBy(object ?? {}, (value) => value !== undefined);
if (Object.keys(result).length === 0) {
return undefined;
}
return result as unknown;
};

Loading…
Cancel
Save