prioritized.grouping/docs/shinylive/webr/webR/webr-chan.d.ts

198 lines
4.8 KiB
TypeScript
Raw Normal View History

2024-01-11 09:43:23 +01:00
/**
* @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;
};
}