aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-08 15:14:23 +0000
committerMohamedBassem <me@mbassem.com>2024-02-08 15:15:21 +0000
commit80bb8a108f29331cdb2f2695f6801beee104dc89 (patch)
treeb1ae2a512963a9c916c4bfed71f7633f508de131 /packages/shared
parent333429adbaaa592cc96b480a5228f0e3f1de4cc2 (diff)
downloadkarakeep-80bb8a108f29331cdb2f2695f6801beee104dc89.tar.zst
[refactor] Move the different packages to the package subdir
Diffstat (limited to 'packages/shared')
-rw-r--r--packages/shared/index.ts1
-rw-r--r--packages/shared/logger.ts15
-rw-r--r--packages/shared/package.json10
-rw-r--r--packages/shared/queues.ts29
4 files changed, 55 insertions, 0 deletions
diff --git a/packages/shared/index.ts b/packages/shared/index.ts
new file mode 100644
index 00000000..8b93520f
--- /dev/null
+++ b/packages/shared/index.ts
@@ -0,0 +1 @@
+export * as Queues from "./queues.ts";
diff --git a/packages/shared/logger.ts b/packages/shared/logger.ts
new file mode 100644
index 00000000..8cd2f808
--- /dev/null
+++ b/packages/shared/logger.ts
@@ -0,0 +1,15 @@
+import winston from "winston";
+
+const logger = winston.createLogger({
+ level: process.env.LOG_LEVEL || "debug",
+ format: winston.format.combine(
+ winston.format.timestamp(),
+ winston.format.colorize(),
+ winston.format.printf(
+ (info) => `${info.timestamp} ${info.level}: ${info.message}`,
+ ),
+ ),
+ transports: [new winston.transports.Console()],
+});
+
+export default logger;
diff --git a/packages/shared/package.json b/packages/shared/package.json
new file mode 100644
index 00000000..b75b3ac3
--- /dev/null
+++ b/packages/shared/package.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "https://json.schemastore.org/package.json",
+ "name": "@remember/shared",
+ "version": "0.1.0",
+ "private": true,
+ "dependencies": {
+ "winston": "^3.11.0"
+ },
+ "main": "index.ts"
+}
diff --git a/packages/shared/queues.ts b/packages/shared/queues.ts
new file mode 100644
index 00000000..a607131d
--- /dev/null
+++ b/packages/shared/queues.ts
@@ -0,0 +1,29 @@
+import { Queue } from "bullmq";
+import { z } from "zod";
+
+export const queueConnectionDetails = {
+ host: process.env.REDIS_HOST || "localhost",
+ port: parseInt(process.env.REDIS_PORT || "6379"),
+};
+
+// Link Crawler
+export const zCrawlLinkRequestSchema = z.object({
+ linkId: z.string(),
+ url: z.string().url(),
+});
+export type ZCrawlLinkRequest = z.infer<typeof zCrawlLinkRequestSchema>;
+
+export const LinkCrawlerQueue = new Queue<ZCrawlLinkRequest, void>(
+ "link_crawler_queue",
+ { connection: queueConnectionDetails },
+);
+
+// OpenAI Worker
+export const zOpenAIRequestSchema = z.object({
+ linkId: z.string(),
+});
+export type ZOpenAIRequest = z.infer<typeof zOpenAIRequestSchema>;
+
+export const OpenAIQueue = new Queue<ZOpenAIRequest, void>("openai_queue", {
+ connection: queueConnectionDetails,
+});