qrloop
Version:
Envelop big blob of data into frames that can be displayed in series of QR Codes
43 lines (42 loc) • 1.27 kB
TypeScript
/// <reference types="node" />
import { Buffer } from "buffer";
declare type Frame = {
framesCount: number;
index: number;
data: Buffer;
};
declare type Fountain = {
frameIndexes: number[];
data: Buffer;
};
export declare type State = {
frames: Frame[];
fountainsQueue: Fountain[];
exploredFountains: string[];
} | undefined | null;
/**
* reduce frames data array to add on more chunk to it.
* As a user of this function, consider the frames to be a black box and use the available functions to extract things.
*/
export declare function parseFramesReducer(_state: State, chunkStr: string): State;
/**
* retrieve the total number of frames
*/
export declare const totalNumberOfFrames: (s: State) => number | undefined | null;
/**
* get the currently captured number of frames
*/
export declare const currentNumberOfFrames: (s: State) => number;
/**
* get a progress value from 0 to 1
*/
export declare const progressOfFrames: (s: State) => number;
/**
* check if the frames have all been retrieved
*/
export declare const areFramesComplete: (s: State) => boolean;
/**
* return final result of the frames. assuming you have checked `areFramesComplete`
*/
export declare function framesToData(s?: State): Buffer;
export {};