mirror of
https://github.com/wu736139669/hapi.git
synced 2026-11-08 01:43:07 +00:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
export type TerminalEventGuardInput = {
|
|
eventTurnId: string | null;
|
|
currentTurnId: string | null;
|
|
turnInFlight: boolean;
|
|
allowAnonymousTerminalEvent?: boolean;
|
|
eventThreadId?: string | null;
|
|
currentThreadId?: string | null;
|
|
allowMatchingThreadIdTerminalEvent?: boolean;
|
|
};
|
|
|
|
export function shouldIgnoreTerminalEvent(input: TerminalEventGuardInput): boolean {
|
|
const allowAnonymousTerminalEvent = input.allowAnonymousTerminalEvent === true;
|
|
|
|
if (input.eventTurnId) {
|
|
return Boolean(input.currentTurnId && input.eventTurnId !== input.currentTurnId);
|
|
}
|
|
|
|
if (input.currentTurnId) {
|
|
const allowMatchingThreadIdTerminalEvent = input.allowMatchingThreadIdTerminalEvent === true;
|
|
if (
|
|
allowMatchingThreadIdTerminalEvent &&
|
|
input.eventThreadId &&
|
|
input.currentThreadId &&
|
|
input.eventThreadId === input.currentThreadId
|
|
) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
if (input.turnInFlight && !allowAnonymousTerminalEvent) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|