nitropage
Version:
A free and open source, extensible visual page builder based on SolidStart.
23 lines (18 loc) • 395 B
text/typescript
import { isEqual } from "es-toolkit";
export const omitEqualProperties = <T extends {}, K extends (keyof T)[]>(
next: T,
prev = {},
keys: K,
) => {
const props: {
[P in K[0]]?: T[P];
} = {};
for (const k of keys) {
const nextV = next[k as keyof T];
if (isEqual(nextV, (prev as any)[k])) {
continue;
}
props[k as keyof T] = nextV;
}
return props;
};