From 840b6784da6f1eb36ff434e2704cef40e3902850 Mon Sep 17 00:00:00 2001 From: Goku-kun Date: Fri, 5 Dec 2025 00:06:40 +0530 Subject: [PATCH] refactor(publish): modularize publishing logic --- publish/index.js | 28 +++----------------- publish/lib/firebase.js | 18 +++++++++++++ publish/lib/meilisearch.js | 6 +++++ publish/{parser.js => parsers/mdx-parser.js} | 1 - 4 files changed, 27 insertions(+), 26 deletions(-) create mode 100644 publish/lib/firebase.js create mode 100644 publish/lib/meilisearch.js rename publish/{parser.js => parsers/mdx-parser.js} (99%) diff --git a/publish/index.js b/publish/index.js index ac8e976f..41fe0521 100644 --- a/publish/index.js +++ b/publish/index.js @@ -1,31 +1,9 @@ -import firebaseAdmin from "firebase-admin"; import fs from "fs"; import path from "path"; -import { MeiliSearch } from "meilisearch"; -import { parseMarkdown } from "./parser.js"; - -const client = new MeiliSearch({ - host: process.env.MEILISEARCH_HOST, - apiKey: process.env.MEILISEARCH_API_KEY, -}); - -firebaseAdmin.initializeApp({ - credential: firebaseAdmin.credential.cert({ - type: "service_account", - project_id: "codedex-io", - private_key_id: process.env.private_key_id, - private_key: process.env.private_key, - client_email: process.env.client_email, - client_id: process.env.client_id, - auth_uri: "https://accounts.google.com/o/oauth2/auth", - token_uri: "https://oauth2.googleapis.com/token", - auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs", - client_x509_cert_url: process.env.client_cert_url, - }), -}); - -const firestore = firebaseAdmin.firestore(); +import { firestore } from "./lib/firebase.js"; +import { client } from "./lib/meilisearch.js"; +import { parseMarkdown } from "./parsers/mdx-parser.js"; function getBlogsFileNames() { return fs diff --git a/publish/lib/firebase.js b/publish/lib/firebase.js new file mode 100644 index 00000000..83893dd7 --- /dev/null +++ b/publish/lib/firebase.js @@ -0,0 +1,18 @@ +import firebaseAdmin from "firebase-admin"; + +firebaseAdmin.initializeApp({ + credential: firebaseAdmin.credential.cert({ + type: "service_account", + project_id: "codedex-io", + private_key_id: process.env.private_key_id, + private_key: process.env.private_key, + client_email: process.env.client_email, + client_id: process.env.client_id, + auth_uri: "https://accounts.google.com/o/oauth2/auth", + token_uri: "https://oauth2.googleapis.com/token", + auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs", + client_x509_cert_url: process.env.client_cert_url, + }), +}); + +export const firestore = firebaseAdmin.firestore(); diff --git a/publish/lib/meilisearch.js b/publish/lib/meilisearch.js new file mode 100644 index 00000000..00fcba6c --- /dev/null +++ b/publish/lib/meilisearch.js @@ -0,0 +1,6 @@ +import { MeiliSearch } from "meilisearch"; + +export const client = new MeiliSearch({ + host: process.env.MEILISEARCH_HOST, + apiKey: process.env.MEILISEARCH_API_KEY, +}); diff --git a/publish/parser.js b/publish/parsers/mdx-parser.js similarity index 99% rename from publish/parser.js rename to publish/parsers/mdx-parser.js index ecb13c1f..e43b42b7 100644 --- a/publish/parser.js +++ b/publish/parsers/mdx-parser.js @@ -66,4 +66,3 @@ export async function parseMarkdown({ markdown }) { return { source, content, data }; } -