From 24860c9a02ff8b6a347ec0cf598f150e9d91ac3e Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 12 Nov 2025 11:06:13 -0800 Subject: [PATCH] Add prepend util --- docs/lib/tools.md | 3 +++ packages/lib/src/Tools.ts | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/docs/lib/tools.md b/docs/lib/tools.md index b5a9175..f4c746b 100644 --- a/docs/lib/tools.md +++ b/docs/lib/tools.md @@ -218,6 +218,9 @@ export declare const take: (n: number, xs: Iterable) => T[]; // Concatenates multiple arrays, filtering out null/undefined export declare const concat: (...xs: T[][]) => T[]; +// Prepends element to array +export declare const prepend: (x: T, xs: T[]) => T[]; + // Appends element to array export declare const append: (x: T, xs: T[]) => T[]; diff --git a/packages/lib/src/Tools.ts b/packages/lib/src/Tools.ts index 0166738..be0d299 100644 --- a/packages/lib/src/Tools.ts +++ b/packages/lib/src/Tools.ts @@ -430,6 +430,14 @@ export const concat = (...xs: T[][]) => xs.flatMap(x => (x === undefined ? [] */ export const append = (x: T, xs: Iterable) => concat(Array.from(xs), [x]) +/** + * Prepends element to array + * @param x - Element to prepend + * @param xs - Array to prepend to + * @returns New array with element prepended + */ +export const prepend = (x: T, xs: Iterable) => concat([x], Array.from(xs)) + /** * Creates union of two arrays * @param a - First array