{"version":3,"file":"one-server-only.js","names":[],"sources":["esm/vite/one-server-only.js"],"sourcesContent":["import { SERVER_CONTEXT_KEY } from \"../constants\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\nconst _ctxKey = /* @__PURE__ */ Symbol.for(\"__oneCtx\");\nconst key = \"__vxrnrequestAsyncLocalStore\";\nconst read = () => globalThis[key];\nconst ASYNC_LOCAL_STORE = {\n  get current() {\n    if (read()) return read();\n    const _ = new AsyncLocalStorage();\n    globalThis[key] = _;\n    return _;\n  }\n};\nconst requestAsyncLocalStore = process.env.VITE_ENVIRONMENT === \"ssr\" ? ASYNC_LOCAL_STORE.current : null;\nconst newCache = /* @__PURE__ */ new WeakMap();\nconst asyncHeadersCache = globalThis[\"__vxrnasyncHeadersCache\"] ?? newCache;\nglobalThis[\"__vxrnasyncHeadersCache\"] ||= asyncHeadersCache;\nasync function runWithAsyncLocalContext(cb) {\n  const id = { _id: Math.random() };\n  const store = ASYNC_LOCAL_STORE.current;\n  if (!store) {\n    return cb(id);\n  }\n  let out = null;\n  await store.run(id, async () => {\n    out = await cb(id);\n  });\n  return out;\n}\nasync function setResponseHeaders(cb) {\n  const id = ensureAsyncLocalID();\n  const cache = globalThis[\"__vxrnasyncHeadersCache\"] ?? asyncHeadersCache;\n  const headers = cache.get(id) ?? new Headers();\n  cache.set(id, headers);\n  cb(headers);\n}\nfunction mergeHeaders(onto, from) {\n  const setCookies = from.getSetCookie?.();\n  if (setCookies?.length) {\n    for (const cookie of setCookies) {\n      onto.append(\"set-cookie\", cookie);\n    }\n  }\n  from.forEach((value, key2) => {\n    if (key2 === \"set-cookie\") return;\n    if (value === void 0 || value === \"undefined\") {\n      onto.delete(key2);\n    } else {\n      onto.set(key2, value);\n    }\n  });\n}\nconst globalId = { _id: Math.random() };\nconst GLOBAL_ID_KEY = \"__oneGlobalContextId\";\nif (!globalThis[GLOBAL_ID_KEY]) {\n  globalThis[GLOBAL_ID_KEY] = globalId;\n}\nfunction ensureAsyncLocalID() {\n  const globalIdKey = GLOBAL_ID_KEY || \"__oneGlobalContextId\";\n  const store = requestAsyncLocalStore ?? globalThis[\"__vxrnrequestAsyncLocalStore\"];\n  const id = process.env.VERCEL ? globalThis[globalIdKey] : store?.getStore();\n  if (!id) {\n    throw new Error(`Internal One error, no AsyncLocalStorage id!`);\n  }\n  return id;\n}\nconst SERVER_CONTEXTS_KEY = \"__oneServerContexts\";\nif (!globalThis[SERVER_CONTEXTS_KEY]) {\n  globalThis[SERVER_CONTEXTS_KEY] = /* @__PURE__ */ new WeakMap();\n}\nconst serverContexts = globalThis[SERVER_CONTEXTS_KEY];\nfunction setServerContext(data) {\n  if (process.env.VITE_ENVIRONMENT === \"ssr\") {\n    const id = ensureAsyncLocalID();\n    let context = id[_ctxKey];\n    if (!context) {\n      context = {};\n      id[_ctxKey] = context;\n      serverContexts.set(id, context);\n    }\n    Object.assign(context, data);\n  } else {\n    throw new Error(`Don't call setServerContext on client`);\n  }\n}\nfunction getServerContext() {\n  const out = (() => {\n    if (process.env.VITE_ENVIRONMENT === \"ssr\") {\n      const id = ensureAsyncLocalID();\n      return id[_ctxKey] || serverContexts.get(id);\n    }\n    return globalThis[SERVER_CONTEXT_KEY];\n  })();\n  return out;\n}\nfunction useServerContext() {\n  if (process.env.VITE_ENVIRONMENT === \"ssr\") {\n    try {\n      const useContext = globalThis[\"__vxrnGetContextFromReactContext\"];\n      if (useContext) {\n        const id = useContext();\n        if (id) return id[_ctxKey] || serverContexts.get(id);\n      }\n    } catch {\n    }\n  }\n  return getServerContext();\n}\nfunction setServerData(key2, value) {\n  if (process.env.VITE_ENVIRONMENT === \"ssr\") {\n    const context = getServerContext();\n    setServerContext({\n      postRenderData: {\n        ...context?.postRenderData,\n        [key2]: value\n      }\n    });\n  } else {\n    throw new Error(\n      `Cannot setServerData in ${process.env.VITE_ENVIRONMENT} environment!`\n    );\n  }\n}\nfunction getServerData(key2) {\n  if (process.env.VITE_ENVIRONMENT === \"ssr\") {\n    throw new Error(`Cannot getServerData on the server`);\n  }\n  if (process.env.VITE_ENVIRONMENT !== \"ssr\") {\n    return getServerContext()?.postRenderData?.[key2];\n  }\n}\nexport {\n  asyncHeadersCache,\n  ensureAsyncLocalID,\n  getServerContext,\n  getServerData,\n  mergeHeaders,\n  requestAsyncLocalStore,\n  runWithAsyncLocalContext,\n  setResponseHeaders,\n  setServerContext,\n  setServerData,\n  useServerContext\n};\n//# sourceMappingURL=one-server-only.js.map\n"],"mappings":"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"}