Skip to content

Class: SessionLifecycle

Makaio Framework


Makaio Framework / ai-adapters-core / SessionLifecycle

Defined in: ../../../adapters/core/src/session/utilities.ts:38

Manages session lifecycle and abort handling.

Provides coordinated abort signal management:

  • Idempotent abort()
  • Cleanup hook execution
  • Termination state tracking

SessionLifecycle is a simple composition utility that encapsulates abort signal coordination. It avoids inheritance coupling while providing a clean API for session termination.

class MySession {
private lifecycle = new SessionLifecycle();
abort() {
this.lifecycle.abort(() => this.transport.close());
}
async sendMessage(msg: string) {
if (this.lifecycle.isTerminated) {
throw new Error('Session terminated');
}
// ... send logic
}
getAbortSignal(): AbortSignal {
return this.lifecycle.signal;
}
}

new SessionLifecycle(abortController?): SessionLifecycle

Defined in: ../../../adapters/core/src/session/utilities.ts:46

Create a new SessionLifecycle

AbortController

Optional AbortController to use (creates new if not provided)

SessionLifecycle

get isTerminated(): boolean

Defined in: ../../../adapters/core/src/session/utilities.ts:62

Get termination state

boolean

True if session has been terminated


get signal(): AbortSignal

Defined in: ../../../adapters/core/src/session/utilities.ts:54

Get abort signal for provider integration

AbortSignal

The abort signal

abort(cleanup?): void

Defined in: ../../../adapters/core/src/session/utilities.ts:71

Abort session and run cleanup. Idempotent - safe to call multiple times.

() => void | Promise<void>

Cleanup function (sync or async)

void


onAbort(handler): void

Defined in: ../../../adapters/core/src/session/utilities.ts:88

Register abort listener

() => void

Callback to invoke when session is aborted

void