routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Iterates through an array calling a callback for each adjacent pair.
|
||||
*
|
||||
* Processes elements in pairs where:
|
||||
*
|
||||
* - First call: left is null, right is the first element
|
||||
* - Subsequent calls: left and right are adjacent elements.
|
||||
*
|
||||
* This pattern is particularly useful for comparing adjacent elements in
|
||||
* sorting validation, where each element needs to be compared with its
|
||||
* predecessor to ensure correct ordering.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* // Common use case: checking sort order
|
||||
* const numbers = [1, 3, 2, 4]
|
||||
* const errors: string[] = []
|
||||
*
|
||||
* pairwise(numbers, (left, right) => {
|
||||
* if (left !== null && left > right) {
|
||||
* errors.push(`${left} should come after ${right}`)
|
||||
* }
|
||||
* })
|
||||
* // errors = ['3 should come after 2']
|
||||
* ```
|
||||
*
|
||||
* @template T - Type of array elements.
|
||||
* @param nodes - Array to iterate through.
|
||||
* @param callback - Function called for each pair (including null for first).
|
||||
*/
|
||||
export declare function pairwise<T>(
|
||||
nodes: T[],
|
||||
callback: (left: null | T, right: T) => void,
|
||||
): void
|
||||
Reference in New Issue
Block a user