From b94896a0f8fa43b957a9bdd6ab57ada0ab8101af Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 27 Jul 2025 19:37:11 +0100 Subject: refactor: Extract meilisearch as a plugin --- packages/shared-server/.oxlintrc.json | 19 +++++++++++++++++++ packages/shared-server/index.ts | 1 + packages/shared-server/package.json | 28 ++++++++++++++++++++++++++++ packages/shared-server/src/index.ts | 1 + packages/shared-server/src/plugins.ts | 12 ++++++++++++ packages/shared-server/tsconfig.json | 10 ++++++++++ 6 files changed, 71 insertions(+) create mode 100644 packages/shared-server/.oxlintrc.json create mode 100644 packages/shared-server/index.ts create mode 100644 packages/shared-server/package.json create mode 100644 packages/shared-server/src/index.ts create mode 100644 packages/shared-server/src/plugins.ts create mode 100644 packages/shared-server/tsconfig.json (limited to 'packages/shared-server') diff --git a/packages/shared-server/.oxlintrc.json b/packages/shared-server/.oxlintrc.json new file mode 100644 index 00000000..79ba0255 --- /dev/null +++ b/packages/shared-server/.oxlintrc.json @@ -0,0 +1,19 @@ +{ + "$schema": "../../node_modules/oxlint/configuration_schema.json", + "extends": [ + "../../tooling/oxlint/oxlint-base.json" + ], + "env": { + "builtin": true, + "commonjs": true + }, + "ignorePatterns": [ + "**/*.config.js", + "**/*.config.cjs", + "**/.eslintrc.cjs", + "**/.next", + "**/dist", + "**/build", + "**/pnpm-lock.yaml" + ] +} diff --git a/packages/shared-server/index.ts b/packages/shared-server/index.ts new file mode 100644 index 00000000..3bd16e17 --- /dev/null +++ b/packages/shared-server/index.ts @@ -0,0 +1 @@ +export * from "./src"; diff --git a/packages/shared-server/package.json b/packages/shared-server/package.json new file mode 100644 index 00000000..8ac98e21 --- /dev/null +++ b/packages/shared-server/package.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "name": "@karakeep/shared-server", + "version": "0.1.0", + "private": true, + "type": "module", + "dependencies": { + "@karakeep/plugins-search-meilisearch": "workspace:^0.1.0", + "@karakeep/shared": "workspace:^0.1.0" + }, + "devDependencies": { + "@karakeep/prettier-config": "workspace:^0.1.0", + "@karakeep/tsconfig": "workspace:^0.1.0" + }, + "scripts": { + "typecheck": "tsc --noEmit", + "format": "prettier . --cache --ignore-path ../../.prettierignore --check", + "format:fix": "prettier . --cache --write --ignore-path ../../.prettierignore", + "lint": "oxlint .", + "lint:fix": "oxlint . --fix", + "test": "vitest" + }, + "main": "index.ts", + "exports": { + ".": "./index.ts" + }, + "prettier": "@karakeep/prettier-config" +} diff --git a/packages/shared-server/src/index.ts b/packages/shared-server/src/index.ts new file mode 100644 index 00000000..a17576ad --- /dev/null +++ b/packages/shared-server/src/index.ts @@ -0,0 +1 @@ +export { loadAllPlugins } from "./plugins"; diff --git a/packages/shared-server/src/plugins.ts b/packages/shared-server/src/plugins.ts new file mode 100644 index 00000000..86a0b344 --- /dev/null +++ b/packages/shared-server/src/plugins.ts @@ -0,0 +1,12 @@ +import { PluginManager } from "@karakeep/shared/plugins"; + +let pluginsLoaded = false; +export async function loadAllPlugins() { + if (pluginsLoaded) { + return; + } + // Load plugins here. Order of plugin loading matter. + await import("@karakeep/plugins-search-meilisearch"); + PluginManager.logAllPlugins(); + pluginsLoaded = true; +} diff --git a/packages/shared-server/tsconfig.json b/packages/shared-server/tsconfig.json new file mode 100644 index 00000000..9bb09964 --- /dev/null +++ b/packages/shared-server/tsconfig.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@karakeep/tsconfig/node.json", + "include": ["src/**/*.ts"], + "exclude": ["node_modules"], + "compilerOptions": { + "rootDir": "src/", + "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" + }, +} -- cgit v1.2.3-70-g09d2