Tons of Solutions Engineering work done today for the rest of the CS team! Headway, Howard Hanna, Engels, Brighton, etc. Also completed Datasnippers auth flow and worked on Anthology's script. Cloned Anthology's courses (900..) and will clone Full Story on Monday.
This commit is contained in:
68
Scripts/node_modules/@tootallnate/quickjs-emscripten/dist/vm-interface.d.ts
generated
vendored
Normal file
68
Scripts/node_modules/@tootallnate/quickjs-emscripten/dist/vm-interface.d.ts
generated
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
/**
|
||||
* Used as an optional.
|
||||
* `{ value: S } | { error: E }`.
|
||||
*/
|
||||
export type SuccessOrFail<S, F> = {
|
||||
value: S;
|
||||
error?: undefined;
|
||||
} | {
|
||||
error: F;
|
||||
};
|
||||
export declare function isSuccess<S, F>(successOrFail: SuccessOrFail<S, F>): successOrFail is {
|
||||
value: S;
|
||||
};
|
||||
export declare function isFail<S, F>(successOrFail: SuccessOrFail<S, F>): successOrFail is {
|
||||
error: F;
|
||||
};
|
||||
/**
|
||||
* Used as an optional for results of a Vm call.
|
||||
* `{ value: VmHandle } | { error: VmHandle }`.
|
||||
*/
|
||||
export type VmCallResult<VmHandle> = SuccessOrFail<VmHandle, VmHandle>;
|
||||
/**
|
||||
* A VmFunctionImplementation takes handles as arguments.
|
||||
* It should return a handle, or be void.
|
||||
*
|
||||
* To indicate an exception, a VMs can throw either a handle (transferred
|
||||
* directly) or any other Javascript value (only the poperties `name` and
|
||||
* `message` will be transferred). Or, the VmFunctionImplementation may return
|
||||
* a VmCallResult's `{ error: handle }` error variant.
|
||||
*
|
||||
* VmFunctionImplementation should not free its arguments or its return value.
|
||||
* It should not retain a reference to its return value or thrown error.
|
||||
*/
|
||||
export type VmFunctionImplementation<VmHandle> = (this: VmHandle, ...args: VmHandle[]) => VmHandle | VmCallResult<VmHandle> | void;
|
||||
/**
|
||||
* A minimal interface to a Javascript execution environment.
|
||||
*
|
||||
* Higher-level tools should build over the LowLevelJavascriptVm interface to
|
||||
* share as much as possible between executors.
|
||||
*
|
||||
* From https://www.figma.com/blog/how-we-built-the-figma-plugin-system/
|
||||
*/
|
||||
export interface LowLevelJavascriptVm<VmHandle> {
|
||||
global: VmHandle;
|
||||
undefined: VmHandle;
|
||||
typeof(handle: VmHandle): string;
|
||||
getNumber(handle: VmHandle): number;
|
||||
getString(handle: VmHandle): string;
|
||||
newNumber(value: number): VmHandle;
|
||||
newString(value: string): VmHandle;
|
||||
newObject(prototype?: VmHandle): VmHandle;
|
||||
newFunction(name: string, value: VmFunctionImplementation<VmHandle>): VmHandle;
|
||||
getProp(handle: VmHandle, key: string | VmHandle): VmHandle;
|
||||
setProp(handle: VmHandle, key: string | VmHandle, value: VmHandle): void;
|
||||
defineProp(handle: VmHandle, key: string | VmHandle, descriptor: VmPropertyDescriptor<VmHandle>): void;
|
||||
callFunction(func: VmHandle, thisVal: VmHandle, ...args: VmHandle[]): VmCallResult<VmHandle>;
|
||||
evalCode(code: string, filename?: string): VmCallResult<VmHandle>;
|
||||
}
|
||||
/**
|
||||
* From https://www.figma.com/blog/how-we-built-the-figma-plugin-system/
|
||||
*/
|
||||
export interface VmPropertyDescriptor<VmHandle> {
|
||||
value?: VmHandle;
|
||||
configurable?: boolean;
|
||||
enumerable?: boolean;
|
||||
get?: (this: VmHandle) => VmHandle;
|
||||
set?: (this: VmHandle, value: VmHandle) => void;
|
||||
}
|
||||
Reference in New Issue
Block a user