Use compatible timers for TURN credential requests

Use compatGlobal and CompatTimeoutHandle for request deadlines. Enforce the community no-global-this rule for integrations and make violations fail quiet lint checks.
This commit is contained in:
vorotamoroz
2026-09-17 14:26:08 +00:00
parent 1044dca94f
commit dee5b69689
2 changed files with 5 additions and 10 deletions
@@ -4,6 +4,7 @@ import {
type CloudflareTurnConfiguration,
validateCloudflareTurnConfiguration,
} from "./settings";
import { compatGlobal, type CompatTimeoutHandle } from "@vrtmrz/livesync-commonlib/compat/common/coreEnvFunctions";
/** Fetch-compatible function supplied by the host composition. */
export type CloudflareTurnFetch = (input: string | Request, init?: RequestInit) => Promise<Response>;
@@ -283,9 +284,9 @@ export async function acquireCloudflareTurnCredentials(
requestController.abort();
throw abortError();
}
let timeoutId: ReturnType<typeof setTimeout> | undefined;
let timeoutId: CompatTimeoutHandle | undefined;
const deadline = new Promise<never>((_resolve, reject) => {
timeoutId = globalThis.setTimeout(() => {
timeoutId = compatGlobal.setTimeout(() => {
timedOut = true;
requestController.abort();
reject(credentialFailure("unavailable", true));
@@ -293,7 +294,7 @@ export async function acquireCloudflareTurnCredentials(
});
const cleanup = () => {
if (timeoutId !== undefined) globalThis.clearTimeout(timeoutId);
if (timeoutId !== undefined) compatGlobal.clearTimeout(timeoutId);
signal.removeEventListener("abort", onAbort);
};