UNPKG

2.63 kBTypeScriptView Raw
1export declare type Mutable<T> = {
2 -readonly [P in keyof T]: T[P];
3};
4export declare type MaybeNull<T> = {
5 [P in keyof T]: T[P] | null;
6};
7export declare type MaybeUndefined<T> = {
8 [P in keyof T]: T[P] | undefined;
9};
10/**
11 * Creates a shallow copy with all ownkeys of the original object that are `null` made `undefined`
12 */
13export declare function nullToUndefined<T>(nullable: MaybeNull<T>): MaybeUndefined<T>;
14export declare type Deferred<T> = {
15 [P in keyof T]: Promise<T[P]>;
16};
17export declare type RecursivePartial<T> = {
18 [P in keyof T]?: T[P] extends Array<infer I> ? Array<RecursivePartial<I>> : RecursivePartial<T[P]>;
19};
20export declare type MaybeArray<T> = T | T[];
21export declare type MaybePromise<T> = T | PromiseLike<T>;
22export interface Prioritizeable<T> {
23 readonly priority: number;
24 readonly value: T;
25}
26export declare namespace Prioritizeable {
27 type GetPriority<T> = (value: T) => MaybePromise<number>;
28 type GetPrioritySync<T> = (value: T) => number;
29 function toPrioritizeable<T>(rawValue: MaybePromise<T>, getPriority: GetPriority<T>): Promise<Prioritizeable<T>>;
30 function toPrioritizeable<T>(rawValue: MaybePromise<T>[], getPriority: GetPriority<T>): Promise<Prioritizeable<T>[]>;
31 function toPrioritizeableSync<T>(rawValue: T[], getPriority: GetPrioritySync<T>): Prioritizeable<T>[];
32 function prioritizeAllSync<T>(values: T[], getPriority: GetPrioritySync<T>): Prioritizeable<T>[];
33 function prioritizeAll<T>(values: MaybePromise<T>[], getPriority: GetPriority<T>): Promise<Prioritizeable<T>[]>;
34 function isValid<T>(p: Prioritizeable<T>): boolean;
35 function compare<T>(p: Prioritizeable<T>, p2: Prioritizeable<T>): number;
36}
37export declare namespace ArrayUtils {
38 interface Head<T> extends Array<T> {
39 head(): T;
40 }
41 interface Tail<T> extends Array<T> {
42 tail(): T;
43 }
44 interface Children<T> extends Array<T> {
45 children(): Tail<T>;
46 }
47 const TailImpl: {
48 tail<T>(this: T[]): T;
49 };
50 const HeadAndChildrenImpl: {
51 head<T>(this: T[]): T;
52 children<T_1>(this: T_1[]): Tail<T_1>;
53 };
54 interface HeadAndTail<T> extends Head<T>, Tail<T>, Children<T> {
55 }
56 function asTail<T>(array: Array<T>): Tail<T>;
57 function asHeadAndTail<T>(array: Array<T>): HeadAndTail<T>;
58 enum Sort {
59 LeftBeforeRight = -1,
60 RightBeforeLeft = 1,
61 Equal = 0
62 }
63}
64/**
65 * Throws when called and statically makes sure that all variants of a type were consumed.
66 */
67export declare function unreachable(_never: never, message?: string): never;
68//# sourceMappingURL=types.d.ts.map
\No newline at end of file