diff --git a/netlify/functions/views.ts b/netlify/functions/views.ts index e4e8b20..506b427 100644 --- a/netlify/functions/views.ts +++ b/netlify/functions/views.ts @@ -1,16 +1,9 @@ import { Handler } from "@netlify/functions"; - -import Redis from "ioredis"; - -const redis = new Redis({ - host: process.env.REDIS_HOST, - port: Number.parseInt(process.env.REDIS_PORT || "6379", 10), - password: process.env.REDIS_PASSWORD, -}); +import { redisClient } from "../../redis"; const getViewsBySlug = async (slug: string): Promise => { let views = 1; - const data = await redis.get(`views:${slug}`); + const data = await redisClient.get(`views:${slug}`); if (data) views = Number.parseInt(data, 10); if (Number.isNaN(views)) views = 1; return views; @@ -27,7 +20,7 @@ const handler: Handler = async (event) => { } case "POST": { if (!slug) return { statusCode: 400, body: "Bad request." }; - const views = await redis.incr(`views:${slug}`); + const views = await redisClient.incr(`views:${slug}`); return { statusCode: 200, body: views.toString() }; } default: { diff --git a/redis.ts b/redis.ts new file mode 100644 index 0000000..52f4e9f --- /dev/null +++ b/redis.ts @@ -0,0 +1,9 @@ +import Redis from "ioredis"; + +const redisClient = new Redis({ + host: process.env.REDIS_HOST, + port: Number.parseInt(process.env.REDIS_PORT || "6379", 10), + password: process.env.REDIS_PASSWORD, +}); + +export { redisClient }; diff --git a/src/lib/api.ts b/src/lib/api.ts index 03ffedf..bbd2784 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -46,14 +46,16 @@ export function fetchTranslatedArticles(Astro: Readonly): MDXInstan return utils.getPublishedArticles(articles); } -export async function fetchAboutMe(Astro: Readonly): Promise> { +export async function fetchAboutMe(Astro: Readonly): Promise>> { const lang = getLanguageFromURL(Astro.url.pathname); - let markdown: MDXInstance<{}> | undefined; + let markdown: MDXInstance> | undefined; try { - markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance<{}>; + markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance>; } catch (error) { - markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance<{}>; + markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance< + Record + >; } return markdown;