UNPKG

@rb2bv/cache-handler

Version:
40 lines (36 loc) 1.13 kB
// src/constants.ts var MAX_INT32 = 2 ** 31 - 1; // src/helpers/promise-with-timeout.ts function promiseWithTimeout(operation, timeoutMs) { if (typeof timeoutMs !== "number" || Number.isNaN(timeoutMs) || timeoutMs <= 0 || timeoutMs > MAX_INT32) { return operation; } return new Promise((resolve, reject) => { const timeoutId = setTimeout(reject, timeoutMs, new Error(`Operation timed out after ${timeoutMs} ms`)); operation.then((result) => { clearTimeout(timeoutId); resolve(result); }).catch((error) => { clearTimeout(timeoutId); reject(error); }); }); } // src/helpers/is-implicit-tag.ts var NEXT_CACHE_IMPLICIT_TAG_ID = "_N_T_"; function isImplicitTag(tag) { return tag.startsWith(NEXT_CACHE_IMPLICIT_TAG_ID); } // src/helpers/get-timeout-redis-command-options.ts import { commandOptions } from "redis"; function getTimeoutRedisCommandOptions(timeoutMs) { if (timeoutMs === 0) { return commandOptions({}); } return commandOptions({ signal: AbortSignal.timeout(timeoutMs) }); } export { getTimeoutRedisCommandOptions, isImplicitTag, promiseWithTimeout };