Skip to content

Latest commit

 

History

History
199 lines (119 loc) · 3.86 KB

File metadata and controls

199 lines (119 loc) · 3.86 KB

Shared

Bytes

Bytes = string | number[] | Uint8Array

Types that can be converted to bytes in inputs.


Cursor

Cursor = string & object

A cursor for pagination.

Type Declaration

__cursor?

optional __cursor: never


DefineAPI

DefineAPI<API> = { [K in keyof API]: DefineAPICallback<API[K]> }

Define a Plugin backend functions that are callable from the frontend.

Type Parameters

Type Parameter
API extends Record<string, (...args: any[]) => MaybePromise<any>>

Example

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);
}

Deprecated

Use DefinePluginPackageSpec instead.


DefineAPICallback

DefineAPICallback<F> = F extends (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 Parameters

Type Parameter
F

DefineEventCallback

DefineEventCallback<F> = F extends (...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 Parameters

Type Parameter
F

DefineEvents

DefineEvents<Events> = { [K in keyof Events]: DefineEventCallback<Events[K]> }

Define a Plugin backend events that the frontend can receive.

Type Parameters

Type Parameter
Events extends Record<string, (...args: any[]) => MaybePromise<void>>

Example

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" });
}

Deprecated

Use DefinePluginPackageSpec instead.


DefinePluginPackageSpec

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 Parameters

Type Parameter
TSpec extends PluginPackageSpec & ExactPluginPackageKeys<TSpec>

Example

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

ID = string & object

A unique identifier.

Type Declaration

__id?

optional __id: never


MaybePromise

MaybePromise<T> = T | Promise<T>

Promise or value.

Type Parameters

Type Parameter
T

RawOption

RawOption = object

Option to return raw value

Properties

raw

raw: true


RequestSource

RequestSource = ID | Request | RequestSpec | RequestSpecRaw

The source of a request.