mirror of
https://github.com/agdamsbo/prioritized.grouping.git
synced 2025-09-12 10:39:39 +02:00
198 lines
4.8 KiB
TypeScript
198 lines
4.8 KiB
TypeScript
|
/**
|
||
|
* @module WebRChan
|
||
|
*/
|
||
|
import { Message } from './chan/message';
|
||
|
import { UUID as ShelterID } from './chan/task-common';
|
||
|
import { EmPtr } from './emscripten';
|
||
|
import { WebRPayloadWorker, WebRPayloadPtr } from './payload';
|
||
|
import { RType, WebRData } from './robj';
|
||
|
import type { FSType, FSMountOptions } from './webr-main';
|
||
|
export { isUUID as isShelterID, UUID as ShelterID } from './chan/task-common';
|
||
|
/** @internal */
|
||
|
export interface CallRObjectMethodMessage extends Message {
|
||
|
type: 'callRObjectMethod';
|
||
|
data: {
|
||
|
payload?: WebRPayloadPtr;
|
||
|
prop: string;
|
||
|
args: WebRPayloadWorker[];
|
||
|
shelter?: ShelterID;
|
||
|
};
|
||
|
}
|
||
|
/**
|
||
|
* The configuration settings used when installing R packages.
|
||
|
*/
|
||
|
export interface InstallPackagesOptions {
|
||
|
/**
|
||
|
* The R package repository from which to download packages.
|
||
|
* Default: The configured default webR package repository.
|
||
|
*/
|
||
|
repos?: string;
|
||
|
/**
|
||
|
* If `true`, do not output downloading messages.
|
||
|
* Default: `false`.
|
||
|
*/
|
||
|
quiet?: boolean;
|
||
|
/**
|
||
|
* If `true`, attempt to mount packages using filesystem images.
|
||
|
* Default: `true`.
|
||
|
*/
|
||
|
mount?: boolean;
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface InstallPackagesMessage extends Message {
|
||
|
type: 'installPackage';
|
||
|
data: {
|
||
|
name: string;
|
||
|
options: InstallPackagesOptions;
|
||
|
};
|
||
|
}
|
||
|
/**
|
||
|
* The configuration settings used when evaluating R code.
|
||
|
*/
|
||
|
export interface EvalROptions {
|
||
|
/**
|
||
|
* The R environment to evaluate within.
|
||
|
* Default: The global environment.
|
||
|
*/
|
||
|
env?: WebRData;
|
||
|
/**
|
||
|
* Should the stdout and stderr output streams be captured and returned?
|
||
|
* Default: `true`.
|
||
|
*/
|
||
|
captureStreams?: boolean;
|
||
|
/**
|
||
|
* Should conditions raised during execution be captured and returned?
|
||
|
* Default: `true`.
|
||
|
*/
|
||
|
captureConditions?: boolean;
|
||
|
/**
|
||
|
* Should the code automatically print output as if it were written at an R console?
|
||
|
* Default: `false`.
|
||
|
*/
|
||
|
withAutoprint?: boolean;
|
||
|
/**
|
||
|
* Should an R error condition be re-thrown as a JavaScript exception?
|
||
|
* Default: `true`.
|
||
|
*/
|
||
|
throwJsException?: boolean;
|
||
|
/**
|
||
|
* Should the code be executed using a `tryCatch` with handlers in place?
|
||
|
* Default: `true`.
|
||
|
*/
|
||
|
withHandlers?: boolean;
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface CaptureRMessage extends Message {
|
||
|
type: 'captureR';
|
||
|
data: {
|
||
|
code: string;
|
||
|
options: EvalROptions;
|
||
|
shelter: ShelterID;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface EvalRMessage extends Message {
|
||
|
type: 'evalR';
|
||
|
data: {
|
||
|
code: string;
|
||
|
options: EvalROptions;
|
||
|
shelter: ShelterID;
|
||
|
outputType?: EvalRMessageOutputType;
|
||
|
};
|
||
|
}
|
||
|
export type EvalRMessageOutputType = 'void' | 'boolean' | 'boolean[]' | 'number' | 'number[]' | 'string' | 'string[]';
|
||
|
/** @internal */
|
||
|
export interface EvalRMessageRaw extends Message {
|
||
|
type: 'evalRRaw';
|
||
|
data: {
|
||
|
code: string;
|
||
|
options: EvalROptions;
|
||
|
outputType: EvalRMessageOutputType;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface FSMessage extends Message {
|
||
|
type: 'lookupPath' | 'mkdir' | 'rmdir' | 'unlink' | 'unmount';
|
||
|
data: {
|
||
|
path: string;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface FSMountMessage extends Message {
|
||
|
type: 'mount';
|
||
|
data: {
|
||
|
type: FSType;
|
||
|
options: FSMountOptions;
|
||
|
mountpoint: string;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface FSReadFileMessage extends Message {
|
||
|
type: 'readFile';
|
||
|
data: {
|
||
|
path: string;
|
||
|
flags?: string;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface FSWriteFileMessage extends Message {
|
||
|
type: 'writeFile';
|
||
|
data: {
|
||
|
path: string;
|
||
|
data: ArrayBufferView;
|
||
|
flags?: string;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface InvokeWasmFunctionMessage extends Message {
|
||
|
type: 'invokeWasmFunction';
|
||
|
data: {
|
||
|
ptr: EmPtr;
|
||
|
args: number[];
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface NewRObjectMessage extends Message {
|
||
|
type: 'newRObject';
|
||
|
data: {
|
||
|
obj: WebRData;
|
||
|
objType: RType | 'object';
|
||
|
shelter: ShelterID;
|
||
|
};
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface NewShelterMessage extends Message {
|
||
|
type: 'newShelter';
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface ShelterMessage extends Message {
|
||
|
type: 'shelterPurge' | 'shelterSize';
|
||
|
data: ShelterID;
|
||
|
}
|
||
|
/** @internal */
|
||
|
export interface ShelterDestroyMessage extends Message {
|
||
|
type: 'shelterDestroy';
|
||
|
data: {
|
||
|
id: ShelterID;
|
||
|
obj: WebRPayloadPtr;
|
||
|
};
|
||
|
}
|
||
|
export interface CanvasMessage extends Message {
|
||
|
type: 'canvas';
|
||
|
data: {
|
||
|
event: 'canvasNewPage';
|
||
|
} | {
|
||
|
event: 'canvasImage';
|
||
|
image: ImageBitmap;
|
||
|
};
|
||
|
}
|
||
|
export interface PagerMessage extends Message {
|
||
|
type: 'pager';
|
||
|
data: {
|
||
|
path: string;
|
||
|
header: string;
|
||
|
title: string;
|
||
|
deleteFile: boolean;
|
||
|
};
|
||
|
}
|