penambahan web socket
This commit is contained in:
71
examples/nuxt3-websocket-client/node_modules/unstorage/drivers/vercel-runtime-cache.mjs
generated
vendored
Normal file
71
examples/nuxt3-websocket-client/node_modules/unstorage/drivers/vercel-runtime-cache.mjs
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
import { defineDriver, normalizeKey, joinKeys } from "./utils/index.mjs";
|
||||
const DRIVER_NAME = "vercel-runtime-cache";
|
||||
export default defineDriver((opts) => {
|
||||
const base = normalizeKey(opts?.base);
|
||||
const r = (...keys) => joinKeys(base, ...keys);
|
||||
let _cache;
|
||||
const getClient = () => {
|
||||
if (!_cache) {
|
||||
_cache = getCache();
|
||||
}
|
||||
return _cache;
|
||||
};
|
||||
return {
|
||||
name: DRIVER_NAME,
|
||||
getInstance: getClient,
|
||||
async hasItem(key) {
|
||||
const value = await getClient().get(r(key));
|
||||
return value !== void 0 && value !== null;
|
||||
},
|
||||
async getItem(key) {
|
||||
const value = await getClient().get(r(key));
|
||||
return value === void 0 ? null : value;
|
||||
},
|
||||
async setItem(key, value, tOptions) {
|
||||
const ttl = tOptions?.ttl ?? opts?.ttl;
|
||||
const tags = [...tOptions?.tags || [], ...opts?.tags || []].filter(
|
||||
Boolean
|
||||
);
|
||||
await getClient().set(r(key), value, {
|
||||
ttl,
|
||||
tags
|
||||
});
|
||||
},
|
||||
async removeItem(key) {
|
||||
await getClient().delete(r(key));
|
||||
},
|
||||
async getKeys(_base) {
|
||||
return [];
|
||||
},
|
||||
async clear(_base) {
|
||||
if (opts?.tags && opts.tags.length > 0) {
|
||||
await getClient().expireTag(opts.tags);
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
const SYMBOL_FOR_REQ_CONTEXT = /* @__PURE__ */ Symbol.for(
|
||||
"@vercel/request-context"
|
||||
);
|
||||
function getContext() {
|
||||
const fromSymbol = globalThis;
|
||||
return fromSymbol[SYMBOL_FOR_REQ_CONTEXT]?.get?.() ?? {};
|
||||
}
|
||||
function getCache() {
|
||||
const cache = getContext()?.cache || tryRequireVCFunctions()?.getCache?.({
|
||||
keyHashFunction: (key) => key,
|
||||
namespaceSeparator: ":"
|
||||
});
|
||||
if (!cache) {
|
||||
throw new Error("Runtime cache is not available!");
|
||||
}
|
||||
return cache;
|
||||
}
|
||||
let _vcFunctionsLib;
|
||||
function tryRequireVCFunctions() {
|
||||
if (!_vcFunctionsLib) {
|
||||
const { createRequire } = globalThis.process?.getBuiltinModule?.("node:module") || {};
|
||||
_vcFunctionsLib = createRequire?.(import.meta.url)("@vercel/functions");
|
||||
}
|
||||
return _vcFunctionsLib;
|
||||
}
|
||||
Reference in New Issue
Block a user