Bytes =
string|number[] |Uint8Array
Types that can be converted to bytes in inputs.
Cursor =
string&object
A cursor for pagination.
optional__cursor:never
DefineAPI<
API> ={ [K in keyof API]: DefineAPICallback<API[K]> }
Define a Plugin backend functions that are callable from the frontend.
| Type Parameter |
|---|
API extends Record<string, (...args: any[]) => MaybePromise<any>> |
function generateNumber(sdk: SDK, min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1) + min);
}
export type API = DefineAPI<{
generateNumber: typeof generateNumber;
}>;
export function init(sdk: SDK<API>) {
sdk.api.register("generateNumber", generateNumber);
}Use DefinePluginPackageSpec instead.
DefineAPICallback<
F> =Fextends (sdk:SDK, ...args: infer A) => infer R ? (...args:A) =>R:"Your callback must respect the format (sdk: SDK, ...args: unknown[]) => MaybePromise<unknown>"
Parser for Plugin backend callable functions
| Type Parameter |
|---|
F |
DefineEventCallback<
F> =Fextends (...args: infer A) =>MaybePromise<void> ? (...args:A) =>MaybePromise<void> :"Your callback must respect the format (...args: unknown[]) => MaybePromise<void>"
Parser for Plugin backend events callbacks.
| Type Parameter |
|---|
F |
DefineEvents<
Events> ={ [K in keyof Events]: DefineEventCallback<Events[K]> }
Define a Plugin backend events that the frontend can receive.
| Type Parameter |
|---|
Events extends Record<string, (...args: any[]) => MaybePromise<void>> |
type MyEventData = { id: string; name: string };
export type BackendEvents = DefineEvents<{
"myevent": (data: MyEventData) => void;
}>;
export function init(sdk: SDK<{}, BackendEvents>) {
sdk.api.send("myevent", { id: "1", name: "hello" });
}Use DefinePluginPackageSpec instead.
DefinePluginPackageSpec<
TSpec> =TSpec
Define the specification of a Plugin Package. This includes:
- Manifest ID: the unique identifier of the plugin package.
- API: the backend functions that are callable from the frontend plugin.
- Events: the events that the frontend can receive from the backend plugin.
| Type Parameter |
|---|
TSpec extends PluginPackageSpec & ExactPluginPackageKeys<TSpec> |
type MyEventData = { id: string; name: string };
export type Spec = DefinePluginPackageSpec<{
manifestId: "myplugin",
api: {
myFunction: (min: number, max: number) => Promise<string>;
},
events: {
"my-event": (data: MyEventData) => void;
}
}>;ID =
string&object
A unique identifier.
optional__id:never
MaybePromise<
T> =T|Promise<T>
Promise or value.
| Type Parameter |
|---|
T |
RawOption =
object
Option to return raw value
raw:
true
RequestSource =
ID|Request|RequestSpec|RequestSpecRaw
The source of a request.