Skip to content
Trigora
Start building →

TypeScript client

import { createClient, TrigoraRuntimeError } from "@trigora/client";
function createClient(options?: {
url?: string;
token?: string;
projectId?: string;
fetch?: typeof fetch;
}): TrigoraClient

Default URL is Cloud when token or TRIGORA_TOKEN is set (https://api.trigora.dev, or TRIGORA_API_BASE_URL). Otherwise http://localhost:3477 or TRIGORA_RUNTIME_URL.

type ExecutionHandle<TResult> = {
readonly id: string;
result(): Promise<TResult>;
send<TPayload>(event: EventDefinition<TPayload> | string, payload: TPayload): Promise<void>;
cancel(): Promise<void>;
};

result() polls until a terminal status. failed rejects. cancelled rejects.

MethodHTTP
whoAmI()GET /v1/whoami
listProjects()GET /v1/projects
createProject(body)POST /v1/projects
deployProgram(body)POST /v1/programs/deploy
listPrograms(page?) / programs(page?)GET /v1/programs
getProgram(id)GET /v1/programs/:id
listProgramVersions(id, page?)GET /v1/programs/:id/versions
start(program, input)POST /v1/executions
getExecution(id)GET /v1/executions/:id
listExecutions(page?) / executions(page?)GET /v1/executions
sendEvent(id, name, payload?)POST /v1/executions/:id/events
cancelExecution(id)POST /v1/executions/:id/cancel
getResult(id)GET /v1/executions/:id/result

listPrograms, listProgramVersions, and listExecutions take an optional { limit?, cursor? }. listProjects does not.

Failures throw TrigoraRuntimeError with status and code. See Errors.