export type NonEmptyArray = [T, ...T[]]; export const isNonEmptyArray = (arr: T[]): arr is NonEmptyArray => arr.length > 0; export const assertNonEmptyArray = ( arr: T[], err?: string, ): NonEmptyArray => { if (isNonEmptyArray(arr)) { return arr; } throw new Error(err ?? "Expected non-empty array"); };