@proofkit/fmdapi
Version:
FileMaker Data API client
29 lines (24 loc) • 838 B
text/typescript
import type { RedisConfigNodejs } from "@upstash/redis";
import type { TokenStoreDefinitions } from "./types.js";
export function upstashTokenStore(config: RedisConfigNodejs, options: { prefix?: string } = {}): TokenStoreDefinitions {
const { prefix = "" } = options;
const getRedis = async () => {
const redis = await import("@upstash/redis");
return new redis.Redis(config);
};
return {
getToken: async (key: string) => {
const redis = await getRedis();
return redis.get(prefix + key);
},
setToken: async (key: string, value: string) => {
const redis = await getRedis();
await redis.set(prefix + key, value);
},
clearToken: async (key: string) => {
const redis = await getRedis();
await redis.del(prefix + key);
},
};
}
export default upstashTokenStore;