rpcchannel
Version:
Easy RPC with permission controls
28 lines (27 loc) • 1.28 kB
TypeScript
export declare const toRpcSerialized: unique symbol;
declare type Primitive = undefined | null | void | boolean | number | string | BigInt;
declare type SerializableArray = SerializableData[];
declare type SerializationFuncObject = {
[toRpcSerialized]: SerializationFunction;
};
declare type SerializableObject = {
[key: string]: SerializableData;
} | SerializationFuncObject;
export declare type SerializableData = Primitive | SerializableArray | SerializableObject | Transferable | Error;
declare type SerializedArray = SerializedData[];
declare type SerializedObject = {
[key: string]: SerializedData;
};
export declare type SerializedData = Primitive | SerializedArray | SerializedObject | Transferable;
declare type SerializationFunction = (data: SerializableData, xfer: Transferable[]) => SerializedData;
/**
* Prepares `data` to be sent over a MessagePort by ensuring that all data is
* of a type that can be sent and that all transferrables are `push`ed to
* `xfer`.
* @todo Make error stack sending configurable
* @param data Data to serialize
* @param xfer Destination array for transferrables
* @returns The data in serialized format
*/
export declare function rpcSerialize(data: SerializableData, xfer: Transferable[]): SerializedData;
export {};