type ItemComparer = (a: Item, b: Item) => boolean; /** * Shallow-ish array equality that checks length then each element. The * comparer defaults to reference equality, so scalar arrays compare by value * while object arrays compare by identity unless a custom comparer is * supplied. */ export function areArraysEqual( array1: ReadonlyArray, array2: ReadonlyArray, itemComparer: ItemComparer = (a, b) => a === b, ): boolean { return ( array1.length === array2.length && // biome-ignore lint/style/noNonNullAssertion: index < length guarantees defined array1.every((value, index) => itemComparer(value, array2[index]!)) ); }