trigger.dev
Version:
A Command-Line Interface for Trigger.dev projects
34 lines (33 loc) • 1.56 kB
TypeScript
import { type RunTokenHeartbeatReport, type RunTokenInstallResult, type RunTokenRefreshTrigger } from "@trigger.dev/core/v3/workers";
export type RunTokenUpdate = {
runId: string;
attemptNumber: number;
token: string;
};
export type RunTokenInstaller = (update: RunTokenUpdate) => Promise<RunTokenInstallResult>;
/**
* Tracks the run token installed in one attempt's task process. It reports the installed expiry on
* heartbeats so the server can decide when a replacement is due, and installs replacements with an
* acknowledgement from the task process. Failed installs keep the old expiry, so the next
* heartbeat asks again.
*/
export declare class RunTokenRefresher {
private readonly opts;
private expiresAt?;
private installing;
private pendingReport?;
constructor(opts: {
runId: string;
attemptNumber: number;
/** TRIGGER_RUN_TOKEN from the attempt's start response, if one was issued. */
initialToken: string | undefined;
install: RunTokenInstaller;
now?: () => number;
});
/** Undefined when this attempt has no run token, or while a replacement is being installed. */
report(trigger: RunTokenRefreshTrigger): RunTokenHeartbeatReport | undefined;
get isDue(): boolean;
/** Call after the heartbeat that carried `sent` succeeded, with any replacement it returned. */
handleHeartbeatResponse(sent: RunTokenHeartbeatReport | undefined, replacement: string | undefined): Promise<RunTokenInstallResult | undefined>;
private nowSeconds;
}