@multiplayer-app/session-recorder-node
Version:
Multiplayer Fullstack Session Recorder for Node.js
69 lines • 2.62 kB
TypeScript
import { SessionType, SessionRecorderIdGenerator } from '@multiplayer-app/session-recorder-common';
import { ISession } from './types';
export declare class SessionRecorder {
private _isInitialized;
private _shortSessionId;
private _traceIdGenerator;
private _sessionType;
private _sessionState;
private _apiService;
private _sessionShortIdGenerator;
private _resourceAttributes;
/**
* Initialize session recorder with default or custom configurations
*/
constructor();
/**
* @description Initialize the session recorder
* @param config - Configuration object
* @param config.apiKey - multiplayer otlp key
* @param config.traceIdGenerator - multiplayer compatible trace id generator
* @param config.resourceAttributes - Optional resource attributes
* @param config.generateSessionShortIdLocally - Optional session short ID generator
* @param config.apiBaseUrl - Optional base API URL override
*/
init(config: {
apiKey: string;
traceIdGenerator: SessionRecorderIdGenerator;
resourceAttributes?: object;
generateSessionShortIdLocally?: boolean | (() => string);
apiBaseUrl?: string;
}): void;
/**
* @description Start a new session
* @param {SessionType} SessionType - the type of session to start
* @param {ISession} [sessionPayload] - session metadata
* @returns {Promise<void>}
*/
start(sessionType: SessionType, sessionPayload?: Omit<ISession, '_id'>): Promise<void>;
/**
* @description Save the continuous session
* @param {String} [reason]
* @returns {Promise<void>}
*/
static save(reason?: string): Promise<void>;
/**
* @description Save the continuous session
* @param {ISession} [sessionData]
* @returns {Promise<void>}
*/
save(sessionData?: ISession): Promise<void>;
/**
* @description Stop the current session with an optional comment
* @param {ISession} [sessionData] - user-provided comment to include in session metadata
* @returns {Promise<void>}
*/
stop(sessionData?: ISession): Promise<void>;
/**
* @description Cancel the current session
* @returns {Promise<void>}
*/
cancel(): Promise<void>;
/**
* @description Check if continuous session should be started/stopped automatically
* @param {ISession} [sessionPayload]
* @returns {Promise<void>}
*/
checkRemoteContinuousSession(sessionPayload?: Omit<ISession, '_id' | 'shortId'>): Promise<void>;
}
//# sourceMappingURL=sessionRecorder.d.ts.map