/** @module array/unshiftArray.ts */ import { untypedCurry } from '../function/untypedCurry' import { Prepend, ValueOf } from '../helper-types' export function unshiftArray( arr: A, item: B ): Prepend export function unshiftArray( arr: A ): ( item: B ) => Prepend export function unshiftArray( arr: A, item: B ): Array|B> export function unshiftArray( arr: A ): ( item: B ) => Array|B> /** * Unshift / prepend a item onto the beginning of an array * @param item item to unshift onto array * @param arr array to unshift values onto * @sig a[] -> a -> a[] * @example * unshift([1,2,3])('4') * //=> ['4',1,2,3] : [string, number, number, number] */ export function unshiftArray( ...args ) { return untypedCurry( ( arr, item ) => arr.slice().unshift( item ) ) }