1 | type EmptyArray = readonly never[] & {length: 0};
|
2 | type NonEmptyArray<T> = readonly [T, ...T[]] | readonly [...T[], T] | readonly [T, ...T[], T];
|
3 |
|
4 | /**
|
5 | Get consecutively unique elements from an array.
|
6 |
|
7 | @returns A function, that when called, will return a random element that is never the same as the previous.
|
8 |
|
9 | @example
|
10 | ```
|
11 | import uniqueRandomArray from 'unique-random-array';
|
12 |
|
13 | const random = uniqueRandomArray([1, 2, 3, 4]);
|
14 |
|
15 | console.log(random(), random(), random(), random());
|
16 | //=> 4 2 1 4
|
17 | ```
|
18 | */
|
19 | export default function uniqueRandomArray<T>(array: EmptyArray): () => undefined;
|
20 | export default function uniqueRandomArray<T>(array: NonEmptyArray<T>): () => T;
|
21 | export default function uniqueRandomArray<T>(array: readonly T[]): () => T | undefined;
|