@betaflight/api
Version:
A high-level API to read data from betaflight flight controllers
26 lines (25 loc) • 1.76 kB
TypeScript
export declare const bitCheck: (num: number, bit: number) => boolean;
export declare type PartialNullable<T> = {
[P in keyof T]?: T[P] | null;
};
export declare type TupleOf<T, N extends number> = N extends N ? number extends N ? T[] : _TupleOf<T, N, []> : never;
declare type _TupleOf<T, N extends number, R extends unknown[]> = R["length"] extends N ? R : _TupleOf<T, N, [T, ...R]>;
export declare const isTupleOf: <T, N extends number>(list: T[], length: N) => list is TupleOf<T, N>;
declare type TupleSizes = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
export declare const times: <T, N extends number>(f: (index: number) => T, number: N) => N extends TupleSizes ? TupleOf<T, N> : T[];
export declare const unpackValues: <T>(mask: number, schema: T[], { inverted }?: {
inverted?: boolean | undefined;
}) => T[];
export declare const packValues: <T>(values: T[], schema: T[], { inverted }?: {
inverted?: boolean | undefined;
}) => number;
export declare const fromIdentifier: <T>(schema: T[], value: T) => number | undefined;
export declare const toIdentifier: <T>(schema: T[], value: number) => number | T;
export declare const includeIf: <T>(statement: boolean, value: T | T[]) => T[];
export declare type RecursivePartial<T> = {
[P in keyof T]?: (T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P]) | null;
};
export declare const mergeDeep: <T>(target: T, source: RecursivePartial<T>) => T;
export declare const partialWriteFunc: <T extends Record<string, unknown>, R>(readFunc: (port: string) => Promise<T>, writeFunc: (port: string, config: T) => Promise<R>) => (port: string, config: RecursivePartial<T>) => Promise<R>;
export declare const sleep: (ms: number) => Promise<void>;
export {};