microvium
Version:
A compact, embeddable scripting engine for microcontrollers for executing small scripts written in a subset of JavaScript.
53 lines (52 loc) • 2.2 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { Format, HTML, VisualBufferHTMLContainer } from "./visual-buffer";
import { EventEmitter } from "events";
export declare type FutureLike<T> = T | Future<T>;
export declare class BinaryRegion {
private htmlTemplate?;
private _segments;
private _traceFile;
constructor(htmlTemplate?: VisualBufferHTMLContainer | undefined, traceFilename?: string);
append<T>(value: FutureLike<T>, label: string | undefined, format: Format<Labelled<T | undefined>>): void;
padToEven(format: Format<Labelled<number | undefined>>): void;
padToQuad(format: Format<Labelled<number | undefined>>, headerSize: number): void;
appendBuffer(buffer: BinaryRegion, label?: string): void;
toBuffer(enforceFinalized?: boolean): Buffer;
toHTML(): HTML;
get currentOffset(): Future<number>;
postProcess<T>(start: Future<number>, end: Future<number>, process: (buffer: Buffer) => T): Future<T>;
private appendSegment;
private traceDump;
private appendDirect;
private appendFuture;
private writeToBuffer;
private toVisualBuffer;
}
export declare class Future<T = number> extends EventEmitter {
lastValue: T | undefined;
private _value;
private _resolved;
private _assigned;
private _id;
private _assignable;
constructor(assignable?: boolean);
toString(): string;
assign(value: FutureLike<T>): undefined;
map<U>(f: (v: T) => U): Future<U>;
bind<U>(f: (v: T) => Future<U>): Future<U>;
subtract(this: Future<number>, that: Future<number>): Future<number>;
static create<T>(value: FutureLike<T>): Future<T>;
static isFuture<T>(value: FutureLike<T>): value is Future<T>;
static map<T, U>(value: FutureLike<T>, f: (v: T) => U): FutureLike<U>;
static bind<T, U>(value: FutureLike<T>, f: (v: T) => FutureLike<U>): FutureLike<U>;
static lift<T, U>(operation: (v: T) => U): (v: FutureLike<T>) => FutureLike<U>;
get isResolved(): boolean;
get value(): T;
resolve(value: T): undefined;
unresolve(): void;
}
export interface Labelled<T> {
label?: string;
value: T;
}