From 812fbdf95d4a1c0e119adadf5729b851092a4d16 Mon Sep 17 00:00:00 2001 From: Maciej Piotr Balcerzak Date: Sun, 16 Nov 2025 11:28:27 +0100 Subject: [PATCH] feat: infer plugin id for modules and routes --- apps/docs/content/docs/dev/api/modules.mdx | 10 ++----- apps/docs/content/docs/dev/api/routes.mdx | 12 +------- .../docs/dev/captcha/custom-adapter.mdx | 1 - apps/docs/content/docs/dev/captcha/index.mdx | 1 - apps/docs/content/docs/dev/cron/index.mdx | 4 +-- apps/docs/content/docs/dev/database/index.mdx | 1 - .../content/docs/dev/database/pagination.mdx | 4 +-- packages/vitnode/src/api/lib/module.ts | 30 ++++++++----------- .../vitnode/src/api/lib/plugin-context.ts | 15 ++++++++++ packages/vitnode/src/api/lib/plugin.ts | 2 +- packages/vitnode/src/api/lib/route.ts | 16 ++++------ .../src/api/modules/admin/admin.module.ts | 2 -- .../admin/advanced/advanced.admin.module.ts | 2 -- .../admin/advanced/cron/cron.admin.module.ts | 2 -- .../admin/advanced/cron/routes/get.route.ts | 2 -- .../admin/advanced/cron/routes/run.route.ts | 2 -- .../modules/admin/debug/debug.admin.module.ts | 2 -- .../modules/admin/debug/routes/logs.route.ts | 2 -- .../api/modules/admin/routes/session.route.ts | 1 - .../modules/admin/users/routes/list.route.ts | 2 -- .../modules/admin/users/routes/users.route.ts | 2 -- .../modules/admin/users/users.admin.module.ts | 2 -- .../src/api/modules/cron/cron.module.ts | 2 -- .../src/api/modules/cron/routes/cron.route.ts | 2 -- .../modules/middleware/middleware.module.ts | 2 -- .../src/api/modules/middleware/route.ts | 2 -- .../users/routes/change-password.route.ts | 2 -- .../users/routes/reset-passowrd.route.ts | 2 -- .../api/modules/users/routes/session.route.ts | 2 -- .../api/modules/users/routes/sign-in.route.ts | 2 -- .../modules/users/routes/sign-out.route.ts | 2 -- .../api/modules/users/routes/sign-up.route.ts | 2 -- .../api/modules/users/routes/test.route.ts | 2 -- .../users/sso/routes/callback.route.ts | 2 -- .../users/sso/routes/create-url.route.ts | 2 -- .../src/api/modules/users/sso/sso.module.ts | 2 -- .../src/api/modules/users/users.module.ts | 2 -- packages/vitnode/src/config.ts | 4 +++ .../src/api/modules/admin/admin.module.ts | 2 -- .../categories/categories.admin.module.ts | 2 -- .../admin/categories/routes/create.route.ts | 2 -- .../admin/categories/routes/delete.route.ts | 2 -- .../admin/categories/routes/edit.route.ts | 2 -- .../modules/admin/posts/posts.admin.module.ts | 2 -- .../admin/posts/routes/create.route.ts | 2 -- .../admin/posts/routes/delete.route.ts | 2 -- .../modules/admin/posts/routes/edit.route.ts | 2 -- .../modules/categories/categories.module.ts | 2 -- .../modules/categories/routes/get.route.ts | 2 -- .../src/api/modules/categories/test.route.ts | 2 -- .../src/api/modules/posts/posts.module.ts | 2 -- .../src/api/modules/posts/routes/get.route.ts | 2 -- plugins/blog/src/const.ts | 4 +++ 53 files changed, 47 insertions(+), 136 deletions(-) create mode 100644 packages/vitnode/src/api/lib/plugin-context.ts diff --git a/apps/docs/content/docs/dev/api/modules.mdx b/apps/docs/content/docs/dev/api/modules.mdx index c164d7dc8..cfff69791 100644 --- a/apps/docs/content/docs/dev/api/modules.mdx +++ b/apps/docs/content/docs/dev/api/modules.mdx @@ -10,10 +10,8 @@ Think of modules as containers for related API endpoints. They help organize you ```ts title="plugins/blog/src/api/modules/categories/categories.module.ts" import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; export const categoriesModule = buildModule({ - pluginId: CONFIG_PLUGIN.id, name: "categories", routes: [] // We'll populate this soon! }); @@ -26,12 +24,10 @@ Want to create a module hierarchy? VitNode's got your back! Nested modules are p ```ts title="plugins/blog/src/api/modules/categories/categories.module.ts" import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { postsModule } from "./posts/posts.module"; // [!code ++] export const categoriesModule = buildModule({ - pluginId: CONFIG_PLUGIN.id, name: "categories", routes: [], modules: [postsModule] // [!code ++] @@ -45,14 +41,12 @@ This creates a structure: `/api/{plugin_id}/categories/posts/*` ```ts title="plugins/blog/src/config.api.ts" import { buildApiPlugin } from "@vitnode/core/api/lib/plugin"; -import { CONFIG_PLUGIN } from "@/config"; import { categoriesModule } from "./api/modules/categories/categories.module"; // [!code ++] export const blogApiPlugin = () => { return buildApiPlugin({ - pluginId: CONFIG_PLUGIN.pluginId, - modules: [categoriesModule] // [!code ++] + modules: [categoriesModule] // [!code ++] }); }; -``` +``` \ No newline at end of file diff --git a/apps/docs/content/docs/dev/api/routes.mdx b/apps/docs/content/docs/dev/api/routes.mdx index b54f65318..7fe3cb4a2 100644 --- a/apps/docs/content/docs/dev/api/routes.mdx +++ b/apps/docs/content/docs/dev/api/routes.mdx @@ -11,10 +11,8 @@ Now for the fun part - creating actual endpoints! Each route is a small but migh import { z } from "@hono/zod-openapi"; import { buildRoute } from "@vitnode/core/api/lib/route"; -import { CONFIG_PLUGIN } from "@/config"; export const getCategoriesRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", path: "/", @@ -54,11 +52,9 @@ export const getCategoriesRoute = buildRoute({ ```ts title="plugins/blog/src/api/modules/categories/categories.module.ts" import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { getCategoriesRoute } from "./routes/get.route"; // [!code ++] export const categoriesModule = buildModule({ - pluginId: CONFIG_PLUGIN.id, name: "categories", routes: [getCategoriesRoute] // [!code ++] }); @@ -75,10 +71,8 @@ import { z } from "@hono/zod-openapi"; import { buildRoute } from "@vitnode/core/api/lib/route"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/config"; export const getCategoryByIdRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", // [!code highlight] @@ -136,10 +130,8 @@ Query parameters are your best friends for filtering, searching, and pagination. import { z } from "@hono/zod-openapi"; import { buildRoute } from "@vitnode/core/api/lib/route"; -import { CONFIG_PLUGIN } from "@/config"; export const searchCategoriesRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", path: "/search", @@ -203,7 +195,6 @@ When you need to send complex data (creating, updating), request bodies are your import { z } from "@hono/zod-openapi"; import { buildRoute } from "@vitnode/core/api/lib/route"; -import { CONFIG_PLUGIN } from "@/config"; const createCategorySchema = z.object({ name: z.string().min(1).max(100).openapi({ @@ -225,7 +216,6 @@ const createCategorySchema = z.object({ }); export const createCategoryRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", path: "/", @@ -274,4 +264,4 @@ export const createCategoryRoute = buildRoute({ return c.json(newCategory, 201); } }); -``` +``` \ No newline at end of file diff --git a/apps/docs/content/docs/dev/captcha/custom-adapter.mdx b/apps/docs/content/docs/dev/captcha/custom-adapter.mdx index 0cc0e0f74..6c3be5704 100644 --- a/apps/docs/content/docs/dev/captcha/custom-adapter.mdx +++ b/apps/docs/content/docs/dev/captcha/custom-adapter.mdx @@ -16,7 +16,6 @@ If you want to use captcha in your custom form or somewhere else, follow these s import { buildRoute } from "@vitnode/core/api/lib/route"; export const exampleRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Create a new user", diff --git a/apps/docs/content/docs/dev/captcha/index.mdx b/apps/docs/content/docs/dev/captcha/index.mdx index 8841d9655..7491b85c8 100644 --- a/apps/docs/content/docs/dev/captcha/index.mdx +++ b/apps/docs/content/docs/dev/captcha/index.mdx @@ -43,7 +43,6 @@ Add `withCaptcha` to your route config to enable captcha validation for this rou import { buildRoute } from "@vitnode/core/api/lib/route"; export const exampleRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Create a new user", diff --git a/apps/docs/content/docs/dev/cron/index.mdx b/apps/docs/content/docs/dev/cron/index.mdx index 8b0dacb25..29a145f6f 100644 --- a/apps/docs/content/docs/dev/cron/index.mdx +++ b/apps/docs/content/docs/dev/cron/index.mdx @@ -46,13 +46,11 @@ export const cleanCron = buildCron({ ```ts title="modules/clean/clean.module.ts" import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; // [!code ++] import { cleanCron } from "./cron/clean.cron"; export const cronModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "clean", routes: [], // [!code ++] @@ -69,4 +67,4 @@ When your CRON job will run first time, you should see your job in AdminCP under - + \ No newline at end of file diff --git a/apps/docs/content/docs/dev/database/index.mdx b/apps/docs/content/docs/dev/database/index.mdx index 001f0da6a..85ad122a0 100644 --- a/apps/docs/content/docs/dev/database/index.mdx +++ b/apps/docs/content/docs/dev/database/index.mdx @@ -27,7 +27,6 @@ Access the database in your plugin handlers using `c.get('database')` from the H ```ts title="plugins/{plugin_name}/src/routes/posts.ts" export const postsRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: {}, handler: async (c) => { // [!code ++:7] diff --git a/apps/docs/content/docs/dev/database/pagination.mdx b/apps/docs/content/docs/dev/database/pagination.mdx index b7f86a41f..b6f89626d 100644 --- a/apps/docs/content/docs/dev/database/pagination.mdx +++ b/apps/docs/content/docs/dev/database/pagination.mdx @@ -19,11 +19,9 @@ import { zodPaginationPageInfo, zodPaginationQuery } from "@/api/lib/with-pagination"; -import { CONFIG_PLUGIN } from "@/config"; import { core_cron } from "@/database/cron"; export const getCronsRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Get Admin Cron Logs", @@ -275,4 +273,4 @@ export default function UsersPage() { ); } -``` +``` \ No newline at end of file diff --git a/packages/vitnode/src/api/lib/module.ts b/packages/vitnode/src/api/lib/module.ts index 79c239f63..9912ffa4c 100644 --- a/packages/vitnode/src/api/lib/module.ts +++ b/packages/vitnode/src/api/lib/module.ts @@ -3,41 +3,34 @@ import { OpenAPIHono } from "@hono/zod-openapi"; import type { BuildCronReturn } from "./cron"; import type { Route } from "./route"; -export interface BuildModuleType { - plugin: Plugin; - routes: T; -} +import { getCurrentPluginId } from "./plugin-context"; export interface BaseBuildModuleReturn< - P extends string = string, M extends string = string, - Routes extends Route

[] = Route

[], + Routes extends Route[] = Route[], > { cronJobs: BuildCronReturn[]; hono: OpenAPIHono; - modules?: BaseBuildModuleReturn

[]; + modules?: BaseBuildModuleReturn[]; name: M; - pluginId: P; + pluginId: string; routes: Routes; } export interface BuildModuleReturn< - P extends string, M extends string, - Routes extends Route

[] = Route

[], - Modules extends BaseBuildModuleReturn

[] = BaseBuildModuleReturn

[], -> extends BaseBuildModuleReturn { + Routes extends Route[] = Route[], + Modules extends BaseBuildModuleReturn[] = BaseBuildModuleReturn[], +> extends BaseBuildModuleReturn { modules?: Modules; } export function buildModule< - const P extends string, const M extends string, - const Routes extends Route

[], - Modules extends BaseBuildModuleReturn

[], + const Routes extends Route[], + Modules extends BaseBuildModuleReturn[], >({ routes, - pluginId, name, modules, cronJobs = [], @@ -45,9 +38,10 @@ export function buildModule< cronJobs?: BuildCronReturn[]; modules?: Modules; name: M; - pluginId: P; routes: Routes; -}): BuildModuleReturn { +}): BuildModuleReturn { + const pluginId = getCurrentPluginId(); + const hono = new OpenAPIHono(); if (routes) { diff --git a/packages/vitnode/src/api/lib/plugin-context.ts b/packages/vitnode/src/api/lib/plugin-context.ts new file mode 100644 index 000000000..f09a8b40f --- /dev/null +++ b/packages/vitnode/src/api/lib/plugin-context.ts @@ -0,0 +1,15 @@ +let currentPluginId: string | undefined; + +export const setCurrentPluginId = (pluginId: string) => { + currentPluginId = pluginId; +}; + +export const getCurrentPluginId = () => { + if (!currentPluginId) { + throw new Error( + "Plugin ID is not defined. Ensure that your plugin config sets it before building modules or routes.", + ); + } + + return currentPluginId; +}; diff --git a/packages/vitnode/src/api/lib/plugin.ts b/packages/vitnode/src/api/lib/plugin.ts index 1e4c5b2e2..024c0bc5e 100644 --- a/packages/vitnode/src/api/lib/plugin.ts +++ b/packages/vitnode/src/api/lib/plugin.ts @@ -15,7 +15,7 @@ export function buildApiPlugin

({ pluginId, modules = [], }: { - modules?: BuildModuleReturn[]; + modules?: BuildModuleReturn[]; pluginId: P; }): BuildPluginApiReturn { // Run for checking if the plugin is valid diff --git a/packages/vitnode/src/api/lib/route.ts b/packages/vitnode/src/api/lib/route.ts index e2f217ef4..822d5841b 100644 --- a/packages/vitnode/src/api/lib/route.ts +++ b/packages/vitnode/src/api/lib/route.ts @@ -7,9 +7,9 @@ import { type EnvVitNode, pluginMiddleware, } from "../middlewares/global.middleware"; +import { getCurrentPluginId } from "./plugin-context"; export const buildRoute = < - Plugin extends string, P extends string, R extends Omit & { path: P; @@ -18,12 +18,11 @@ export const buildRoute = < >({ route, handler, - pluginId, }: { handler: RouteHandler; - pluginId: Plugin; route: R; -}): Route => { +}): Route => { + const pluginId = getCurrentPluginId(); const pluginTag = pluginId .split(/[-_]/) .map(word => word.charAt(0).toUpperCase() + word.slice(1)) @@ -45,16 +44,13 @@ export const buildRoute = < ], ...route, }) as R & { path: P }, - handler: handler as Route["handler"], + handler: handler as Route["handler"], pluginId, }; }; -export interface Route< - Plugin extends string = string, - R extends RouteConfig = RouteConfig, -> { +export interface Route { handler: (...args: unknown[]) => Promise | Response; - pluginId: Plugin; + pluginId: string; route: R; } diff --git a/packages/vitnode/src/api/modules/admin/admin.module.ts b/packages/vitnode/src/api/modules/admin/admin.module.ts index 2c9e61ea4..8562669a8 100644 --- a/packages/vitnode/src/api/modules/admin/admin.module.ts +++ b/packages/vitnode/src/api/modules/admin/admin.module.ts @@ -1,5 +1,4 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { advancedAdminModule } from "./advanced/advanced.admin.module"; import { debugAdminModule } from "./debug/debug.admin.module"; @@ -7,7 +6,6 @@ import { sessionAdminRoute } from "./routes/session.route"; import { usersAdminModule } from "./users/users.admin.module"; export const adminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "admin", routes: [sessionAdminRoute], modules: [usersAdminModule, debugAdminModule, advancedAdminModule], diff --git a/packages/vitnode/src/api/modules/admin/advanced/advanced.admin.module.ts b/packages/vitnode/src/api/modules/admin/advanced/advanced.admin.module.ts index a9c616501..7bf2c34a3 100644 --- a/packages/vitnode/src/api/modules/admin/advanced/advanced.admin.module.ts +++ b/packages/vitnode/src/api/modules/admin/advanced/advanced.admin.module.ts @@ -1,10 +1,8 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { cronAdminModule } from "./cron/cron.admin.module"; export const advancedAdminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "advanced", routes: [], modules: [cronAdminModule], diff --git a/packages/vitnode/src/api/modules/admin/advanced/cron/cron.admin.module.ts b/packages/vitnode/src/api/modules/admin/advanced/cron/cron.admin.module.ts index 245dba318..795ecf4fb 100644 --- a/packages/vitnode/src/api/modules/admin/advanced/cron/cron.admin.module.ts +++ b/packages/vitnode/src/api/modules/admin/advanced/cron/cron.admin.module.ts @@ -1,11 +1,9 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { getCronsRoute } from "./routes/get.route"; import { runCronRoute } from "./routes/run.route"; export const cronAdminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "cron", routes: [getCronsRoute, runCronRoute], }); diff --git a/packages/vitnode/src/api/modules/admin/advanced/cron/routes/get.route.ts b/packages/vitnode/src/api/modules/admin/advanced/cron/routes/get.route.ts index b82c2c4da..2f7960f83 100644 --- a/packages/vitnode/src/api/modules/admin/advanced/cron/routes/get.route.ts +++ b/packages/vitnode/src/api/modules/admin/advanced/cron/routes/get.route.ts @@ -6,11 +6,9 @@ import { zodPaginationPageInfo, zodPaginationQuery, } from "@/api/lib/with-pagination"; -import { CONFIG_PLUGIN } from "@/config"; import { core_cron } from "@/database/cron"; export const getCronsRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Get Admin Cron Logs", diff --git a/packages/vitnode/src/api/modules/admin/advanced/cron/routes/run.route.ts b/packages/vitnode/src/api/modules/admin/advanced/cron/routes/run.route.ts index 93b03c529..0bfbcc4ca 100644 --- a/packages/vitnode/src/api/modules/admin/advanced/cron/routes/run.route.ts +++ b/packages/vitnode/src/api/modules/admin/advanced/cron/routes/run.route.ts @@ -4,12 +4,10 @@ import { z } from "zod"; import type { CronJobConfig } from "@/api/lib/cron"; import { buildRoute } from "@/api/lib/route"; -import { CONFIG_PLUGIN } from "@/config"; import { core_cron } from "@/database/cron"; import { getNextCronRunDate } from "@/lib/api/get-next-cron-run-date"; export const runCronRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Run a specific cron job", diff --git a/packages/vitnode/src/api/modules/admin/debug/debug.admin.module.ts b/packages/vitnode/src/api/modules/admin/debug/debug.admin.module.ts index bbd6a876c..aa9c17583 100644 --- a/packages/vitnode/src/api/modules/admin/debug/debug.admin.module.ts +++ b/packages/vitnode/src/api/modules/admin/debug/debug.admin.module.ts @@ -1,9 +1,7 @@ -import { CONFIG_PLUGIN } from "../../../../config"; import { buildModule } from "../../../lib/module"; import { logsDebugAdminRoute } from "./routes/logs.route"; export const debugAdminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "debug", routes: [logsDebugAdminRoute], }); diff --git a/packages/vitnode/src/api/modules/admin/debug/routes/logs.route.ts b/packages/vitnode/src/api/modules/admin/debug/routes/logs.route.ts index e5e359a79..19f071d61 100644 --- a/packages/vitnode/src/api/modules/admin/debug/routes/logs.route.ts +++ b/packages/vitnode/src/api/modules/admin/debug/routes/logs.route.ts @@ -1,7 +1,6 @@ import { eq } from "drizzle-orm"; import { z } from "zod"; -import { CONFIG_PLUGIN } from "@/config"; import { core_logs } from "@/database/logs"; import { core_users } from "../../../../../database/users"; @@ -13,7 +12,6 @@ import { } from "../../../../lib/with-pagination"; export const logsDebugAdminRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Get Admin Debug Logs", diff --git a/packages/vitnode/src/api/modules/admin/routes/session.route.ts b/packages/vitnode/src/api/modules/admin/routes/session.route.ts index 0a48349d3..d63e41f28 100644 --- a/packages/vitnode/src/api/modules/admin/routes/session.route.ts +++ b/packages/vitnode/src/api/modules/admin/routes/session.route.ts @@ -5,7 +5,6 @@ import { buildRoute } from "@/api/lib/route"; import { CONFIG_PLUGIN } from "@/config"; export const sessionAdminRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Verify admin session", diff --git a/packages/vitnode/src/api/modules/admin/users/routes/list.route.ts b/packages/vitnode/src/api/modules/admin/users/routes/list.route.ts index c431acc57..d2965fd3b 100644 --- a/packages/vitnode/src/api/modules/admin/users/routes/list.route.ts +++ b/packages/vitnode/src/api/modules/admin/users/routes/list.route.ts @@ -6,11 +6,9 @@ import { zodPaginationPageInfo, zodPaginationQuery, } from "@/api/lib/with-pagination"; -import { CONFIG_PLUGIN } from "@/config"; import { core_users } from "@/database/users"; export const listUsersAdminRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Get list of all users", diff --git a/packages/vitnode/src/api/modules/admin/users/routes/users.route.ts b/packages/vitnode/src/api/modules/admin/users/routes/users.route.ts index a2e6fe2cc..0547b6948 100644 --- a/packages/vitnode/src/api/modules/admin/users/routes/users.route.ts +++ b/packages/vitnode/src/api/modules/admin/users/routes/users.route.ts @@ -6,11 +6,9 @@ import { zodPaginationPageInfo, zodPaginationQuery, } from "@/api/lib/with-pagination"; -import { CONFIG_PLUGIN } from "@/config"; import { core_users } from "@/database/users"; export const usersAdminRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Get list of all users (Admin only)", diff --git a/packages/vitnode/src/api/modules/admin/users/users.admin.module.ts b/packages/vitnode/src/api/modules/admin/users/users.admin.module.ts index 60363dd34..db8333bc5 100644 --- a/packages/vitnode/src/api/modules/admin/users/users.admin.module.ts +++ b/packages/vitnode/src/api/modules/admin/users/users.admin.module.ts @@ -1,10 +1,8 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { listUsersAdminRoute } from "./routes/list.route"; export const usersAdminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "users", routes: [listUsersAdminRoute], }); diff --git a/packages/vitnode/src/api/modules/cron/cron.module.ts b/packages/vitnode/src/api/modules/cron/cron.module.ts index 8d88f0b57..0b36555ec 100644 --- a/packages/vitnode/src/api/modules/cron/cron.module.ts +++ b/packages/vitnode/src/api/modules/cron/cron.module.ts @@ -1,11 +1,9 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { cleanCron } from "./cron/clean.cron"; import { runCronRoute } from "./routes/cron.route"; export const cronModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "cron", routes: [runCronRoute], cronJobs: [cleanCron], diff --git a/packages/vitnode/src/api/modules/cron/routes/cron.route.ts b/packages/vitnode/src/api/modules/cron/routes/cron.route.ts index da889bf50..886370c41 100644 --- a/packages/vitnode/src/api/modules/cron/routes/cron.route.ts +++ b/packages/vitnode/src/api/modules/cron/routes/cron.route.ts @@ -3,7 +3,6 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { cronAuthMiddleware } from "@/api/middlewares/cron-auth.middleware"; -import { CONFIG_PLUGIN } from "@/config"; import { core_cron } from "@/database/cron"; import { getNextCronRunDate } from "@/lib/api/get-next-cron-run-date"; @@ -14,7 +13,6 @@ import { } from "../helpers/process-cron-jobs"; export const runCronRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Run cron job", diff --git a/packages/vitnode/src/api/modules/middleware/middleware.module.ts b/packages/vitnode/src/api/modules/middleware/middleware.module.ts index cd8240feb..aa59cf300 100644 --- a/packages/vitnode/src/api/modules/middleware/middleware.module.ts +++ b/packages/vitnode/src/api/modules/middleware/middleware.module.ts @@ -1,10 +1,8 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { routeMiddleware } from "./route"; export const middlewareModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "middleware", routes: [routeMiddleware], }); diff --git a/packages/vitnode/src/api/modules/middleware/route.ts b/packages/vitnode/src/api/modules/middleware/route.ts index 1c47669ce..29764f628 100644 --- a/packages/vitnode/src/api/modules/middleware/route.ts +++ b/packages/vitnode/src/api/modules/middleware/route.ts @@ -1,7 +1,6 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; -import { CONFIG_PLUGIN } from "@/config"; export const routeMiddlewareSchema = z.object({ sso: z.array(z.object({ id: z.string(), name: z.string() })), @@ -15,7 +14,6 @@ export const routeMiddlewareSchema = z.object({ }); export const routeMiddleware = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { path: "/", method: "get", diff --git a/packages/vitnode/src/api/modules/users/routes/change-password.route.ts b/packages/vitnode/src/api/modules/users/routes/change-password.route.ts index 829d8ef80..69b1541a7 100644 --- a/packages/vitnode/src/api/modules/users/routes/change-password.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/change-password.route.ts @@ -4,7 +4,6 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { PasswordModel } from "@/api/models/password"; -import { CONFIG_PLUGIN } from "@/config"; import { core_users, core_users_forgot_password } from "@/database/users"; export const zodChangePasswordSchema = z.object({ @@ -16,7 +15,6 @@ export const zodChangePasswordSchema = z.object({ }); export const changePasswordRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Change user password", diff --git a/packages/vitnode/src/api/modules/users/routes/reset-passowrd.route.ts b/packages/vitnode/src/api/modules/users/routes/reset-passowrd.route.ts index c23676f5a..7bf9a31cd 100644 --- a/packages/vitnode/src/api/modules/users/routes/reset-passowrd.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/reset-passowrd.route.ts @@ -4,13 +4,11 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { ForgotPasswordTokenModel } from "@/api/models/password"; -import { CONFIG_PLUGIN } from "@/config"; import { core_users, core_users_forgot_password } from "@/database/users"; import ResetPasswordEmailTemplate from "@/emails/reset-password"; import { CONFIG } from "@/lib/config"; export const resetPasswordRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Request a password reset", diff --git a/packages/vitnode/src/api/modules/users/routes/session.route.ts b/packages/vitnode/src/api/modules/users/routes/session.route.ts index 8a6d9b706..5a67b76f2 100644 --- a/packages/vitnode/src/api/modules/users/routes/session.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/session.route.ts @@ -2,10 +2,8 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { SessionAdminModel } from "@/api/models/session-admin"; -import { CONFIG_PLUGIN } from "@/config"; export const sessionRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "Verify session", diff --git a/packages/vitnode/src/api/modules/users/routes/sign-in.route.ts b/packages/vitnode/src/api/modules/users/routes/sign-in.route.ts index c08080916..7e47ab0fa 100644 --- a/packages/vitnode/src/api/modules/users/routes/sign-in.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/sign-in.route.ts @@ -4,7 +4,6 @@ import { buildRoute } from "@/api/lib/route"; import { SessionModel } from "@/api/models/session"; import { SessionAdminModel } from "@/api/models/session-admin"; import { UserModel } from "@/api/models/user"; -import { CONFIG_PLUGIN } from "@/config"; export const zodSignInSchema = z.object({ email: z.email().toLowerCase().openapi({ @@ -19,7 +18,6 @@ export const zodSignInSchema = z.object({ }); export const signInRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Sign in with email and password", diff --git a/packages/vitnode/src/api/modules/users/routes/sign-out.route.ts b/packages/vitnode/src/api/modules/users/routes/sign-out.route.ts index 9ab991c8b..64568ce22 100644 --- a/packages/vitnode/src/api/modules/users/routes/sign-out.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/sign-out.route.ts @@ -3,10 +3,8 @@ import { z } from "@hono/zod-openapi"; import { buildRoute } from "@/api/lib/route"; import { SessionModel } from "@/api/models/session"; import { SessionAdminModel } from "@/api/models/session-admin"; -import { CONFIG_PLUGIN } from "@/config"; export const signOutRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "delete", description: "Sign out the current admin", diff --git a/packages/vitnode/src/api/modules/users/routes/sign-up.route.ts b/packages/vitnode/src/api/modules/users/routes/sign-up.route.ts index 165e19d69..053662a83 100644 --- a/packages/vitnode/src/api/modules/users/routes/sign-up.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/sign-up.route.ts @@ -3,7 +3,6 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { PasswordModel } from "@/api/models/password"; import { UserModel } from "@/api/models/user"; -import { CONFIG_PLUGIN } from "@/config"; import { SessionModel } from "../../../models/session"; @@ -27,7 +26,6 @@ export const zodSignUpSchema = z.object({ }); export const signUpRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Create a new user", diff --git a/packages/vitnode/src/api/modules/users/routes/test.route.ts b/packages/vitnode/src/api/modules/users/routes/test.route.ts index 4dc0ca2a5..6e5ac6b0c 100644 --- a/packages/vitnode/src/api/modules/users/routes/test.route.ts +++ b/packages/vitnode/src/api/modules/users/routes/test.route.ts @@ -1,10 +1,8 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; -import { CONFIG_PLUGIN } from "@/config"; export const testRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Test route", diff --git a/packages/vitnode/src/api/modules/users/sso/routes/callback.route.ts b/packages/vitnode/src/api/modules/users/sso/routes/callback.route.ts index 1e1c90bab..6b047a05a 100644 --- a/packages/vitnode/src/api/modules/users/sso/routes/callback.route.ts +++ b/packages/vitnode/src/api/modules/users/sso/routes/callback.route.ts @@ -3,10 +3,8 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { SessionModel } from "@/api/models/session"; import { SSOModel } from "@/api/models/sso"; -import { CONFIG_PLUGIN } from "@/config"; export const callbackRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", description: "SSO Callback", diff --git a/packages/vitnode/src/api/modules/users/sso/routes/create-url.route.ts b/packages/vitnode/src/api/modules/users/sso/routes/create-url.route.ts index 435e7b733..1136dc08f 100644 --- a/packages/vitnode/src/api/modules/users/sso/routes/create-url.route.ts +++ b/packages/vitnode/src/api/modules/users/sso/routes/create-url.route.ts @@ -2,10 +2,8 @@ import { z } from "zod"; import { buildRoute } from "@/api/lib/route"; import { SSOModel } from "@/api/models/sso"; -import { CONFIG_PLUGIN } from "@/config"; export const createUrlRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Generate SSO URL", diff --git a/packages/vitnode/src/api/modules/users/sso/sso.module.ts b/packages/vitnode/src/api/modules/users/sso/sso.module.ts index 1329fa1f4..ed8e3dbc0 100644 --- a/packages/vitnode/src/api/modules/users/sso/sso.module.ts +++ b/packages/vitnode/src/api/modules/users/sso/sso.module.ts @@ -1,11 +1,9 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { callbackRoute } from "./routes/callback.route"; import { createUrlRoute } from "./routes/create-url.route"; export const ssoUserModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "sso", routes: [callbackRoute, createUrlRoute], }); diff --git a/packages/vitnode/src/api/modules/users/users.module.ts b/packages/vitnode/src/api/modules/users/users.module.ts index 9c1fc6ec6..90dc763ff 100644 --- a/packages/vitnode/src/api/modules/users/users.module.ts +++ b/packages/vitnode/src/api/modules/users/users.module.ts @@ -1,5 +1,4 @@ import { buildModule } from "@/api/lib/module"; -import { CONFIG_PLUGIN } from "@/config"; import { changePasswordRoute } from "./routes/change-password.route"; import { resetPasswordRoute } from "./routes/reset-passowrd.route"; @@ -11,7 +10,6 @@ import { testRoute } from "./routes/test.route"; import { ssoUserModule } from "./sso/sso.module"; export const usersModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "users", routes: [ sessionRoute, diff --git a/packages/vitnode/src/config.ts b/packages/vitnode/src/config.ts index df24f0ac5..1071bd588 100644 --- a/packages/vitnode/src/config.ts +++ b/packages/vitnode/src/config.ts @@ -1,4 +1,8 @@ +import { setCurrentPluginId } from "@/api/lib/plugin-context"; + export const CONFIG_PLUGIN = { pluginId: "@vitnode/core" as const, version: "2.0.0-canary.0", }; + +setCurrentPluginId(CONFIG_PLUGIN.pluginId); diff --git a/plugins/blog/src/api/modules/admin/admin.module.ts b/plugins/blog/src/api/modules/admin/admin.module.ts index 86aa8b2de..377b86fa9 100644 --- a/plugins/blog/src/api/modules/admin/admin.module.ts +++ b/plugins/blog/src/api/modules/admin/admin.module.ts @@ -1,11 +1,9 @@ import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "../../../const"; import { categoriesAdminModule } from "./categories/categories.admin.module"; import { postsAdminModule } from "./posts/posts.admin.module"; export const adminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "admin", modules: [categoriesAdminModule, postsAdminModule], routes: [], diff --git a/plugins/blog/src/api/modules/admin/categories/categories.admin.module.ts b/plugins/blog/src/api/modules/admin/categories/categories.admin.module.ts index 56c107aa0..1ecaa5778 100644 --- a/plugins/blog/src/api/modules/admin/categories/categories.admin.module.ts +++ b/plugins/blog/src/api/modules/admin/categories/categories.admin.module.ts @@ -1,12 +1,10 @@ import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "../../../../const"; import { createCategoryRoute } from "./routes/create.route"; import { deleteCategoryRoute } from "./routes/delete.route"; import { editCategoryRoute } from "./routes/edit.route"; export const categoriesAdminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "categories", routes: [createCategoryRoute, editCategoryRoute, deleteCategoryRoute], }); diff --git a/plugins/blog/src/api/modules/admin/categories/routes/create.route.ts b/plugins/blog/src/api/modules/admin/categories/routes/create.route.ts index 12f23c3ff..f3f2d6300 100644 --- a/plugins/blog/src/api/modules/admin/categories/routes/create.route.ts +++ b/plugins/blog/src/api/modules/admin/categories/routes/create.route.ts @@ -4,7 +4,6 @@ import { removeSpecialCharacters } from "@vitnode/core/lib/special-characters"; import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; const zodCategoryResponseSchema = z.object({ @@ -19,7 +18,6 @@ export const zodCreateCategorySchema = z.object({ }); export const createCategoryRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", path: "/", diff --git a/plugins/blog/src/api/modules/admin/categories/routes/delete.route.ts b/plugins/blog/src/api/modules/admin/categories/routes/delete.route.ts index dcc598b81..807f97d41 100644 --- a/plugins/blog/src/api/modules/admin/categories/routes/delete.route.ts +++ b/plugins/blog/src/api/modules/admin/categories/routes/delete.route.ts @@ -3,11 +3,9 @@ import { buildRoute } from "@vitnode/core/api/lib/route"; import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; export const deleteCategoryRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "delete", path: "/{id}", diff --git a/plugins/blog/src/api/modules/admin/categories/routes/edit.route.ts b/plugins/blog/src/api/modules/admin/categories/routes/edit.route.ts index 59b496fc1..c08a92dd0 100644 --- a/plugins/blog/src/api/modules/admin/categories/routes/edit.route.ts +++ b/plugins/blog/src/api/modules/admin/categories/routes/edit.route.ts @@ -4,7 +4,6 @@ import { removeSpecialCharacters } from "@vitnode/core/lib/special-characters"; import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; import { zodCreateCategorySchema } from "./create.route"; @@ -17,7 +16,6 @@ const zodCategoryResponseSchema = z.object({ }); export const editCategoryRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "put", path: "/{id}", diff --git a/plugins/blog/src/api/modules/admin/posts/posts.admin.module.ts b/plugins/blog/src/api/modules/admin/posts/posts.admin.module.ts index c39aa207c..2661a14b5 100644 --- a/plugins/blog/src/api/modules/admin/posts/posts.admin.module.ts +++ b/plugins/blog/src/api/modules/admin/posts/posts.admin.module.ts @@ -1,12 +1,10 @@ import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "../../../../const"; import { createPostRoute } from "./routes/create.route"; import { deletePostRoute } from "./routes/delete.route"; import { editPostRoute } from "./routes/edit.route"; export const postsAdminModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "posts", routes: [editPostRoute, createPostRoute, deletePostRoute], }); diff --git a/plugins/blog/src/api/modules/admin/posts/routes/create.route.ts b/plugins/blog/src/api/modules/admin/posts/routes/create.route.ts index 808ff4f41..343c0789a 100644 --- a/plugins/blog/src/api/modules/admin/posts/routes/create.route.ts +++ b/plugins/blog/src/api/modules/admin/posts/routes/create.route.ts @@ -4,7 +4,6 @@ import { removeSpecialCharacters } from "@vitnode/core/lib/special-characters"; import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; import { blog_posts } from "@/database/posts"; @@ -28,7 +27,6 @@ export const zodCreatePostSchema = z.object({ }); export const createPostRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", path: "/", diff --git a/plugins/blog/src/api/modules/admin/posts/routes/delete.route.ts b/plugins/blog/src/api/modules/admin/posts/routes/delete.route.ts index 9f528cbe3..002495e74 100644 --- a/plugins/blog/src/api/modules/admin/posts/routes/delete.route.ts +++ b/plugins/blog/src/api/modules/admin/posts/routes/delete.route.ts @@ -3,11 +3,9 @@ import { buildRoute } from "@vitnode/core/api/lib/route"; import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_posts } from "@/database/posts"; export const deletePostRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "delete", path: "/{id}", diff --git a/plugins/blog/src/api/modules/admin/posts/routes/edit.route.ts b/plugins/blog/src/api/modules/admin/posts/routes/edit.route.ts index 6b3704938..ddb2bb2fd 100644 --- a/plugins/blog/src/api/modules/admin/posts/routes/edit.route.ts +++ b/plugins/blog/src/api/modules/admin/posts/routes/edit.route.ts @@ -4,7 +4,6 @@ import { removeSpecialCharacters } from "@vitnode/core/lib/special-characters"; import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; import { blog_posts } from "@/database/posts"; @@ -21,7 +20,6 @@ const zodPostResponseSchema = z.object({ }); export const editPostRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "put", path: "/{id}", diff --git a/plugins/blog/src/api/modules/categories/categories.module.ts b/plugins/blog/src/api/modules/categories/categories.module.ts index 9a9d80d3f..8b12fe393 100644 --- a/plugins/blog/src/api/modules/categories/categories.module.ts +++ b/plugins/blog/src/api/modules/categories/categories.module.ts @@ -1,12 +1,10 @@ import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "@/const"; import { categoriesRoute } from "./routes/get.route"; import { testRoute } from "./test.route"; export const categoriesModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "categories", routes: [categoriesRoute, testRoute], }); diff --git a/plugins/blog/src/api/modules/categories/routes/get.route.ts b/plugins/blog/src/api/modules/categories/routes/get.route.ts index 3d4c3f2e4..4ac458d5a 100644 --- a/plugins/blog/src/api/modules/categories/routes/get.route.ts +++ b/plugins/blog/src/api/modules/categories/routes/get.route.ts @@ -7,7 +7,6 @@ import { } from "@vitnode/core/api/lib/with-pagination"; import { and, ilike, type SQL } from "drizzle-orm"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; const zodCategorySchema = z.object({ @@ -18,7 +17,6 @@ const zodCategorySchema = z.object({ }); export const categoriesRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", path: "/", diff --git a/plugins/blog/src/api/modules/categories/test.route.ts b/plugins/blog/src/api/modules/categories/test.route.ts index be8151267..0208f0d5e 100644 --- a/plugins/blog/src/api/modules/categories/test.route.ts +++ b/plugins/blog/src/api/modules/categories/test.route.ts @@ -2,11 +2,9 @@ import { buildRoute } from "@vitnode/core/api/lib/route"; import { UserModel } from "@vitnode/core/api/models/user"; import { z } from "zod"; -import { CONFIG_PLUGIN } from "@/const"; import TestTemplateEmail from "@/emails/test-template"; export const testRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "post", description: "Test route", diff --git a/plugins/blog/src/api/modules/posts/posts.module.ts b/plugins/blog/src/api/modules/posts/posts.module.ts index 13e57ab11..2e164cb12 100644 --- a/plugins/blog/src/api/modules/posts/posts.module.ts +++ b/plugins/blog/src/api/modules/posts/posts.module.ts @@ -1,11 +1,9 @@ import { buildModule } from "@vitnode/core/api/lib/module"; -import { CONFIG_PLUGIN } from "@/const"; import { postsRoute } from "./routes/get.route"; export const postsModule = buildModule({ - pluginId: CONFIG_PLUGIN.pluginId, name: "posts", routes: [postsRoute], }); diff --git a/plugins/blog/src/api/modules/posts/routes/get.route.ts b/plugins/blog/src/api/modules/posts/routes/get.route.ts index 2b10e8d2b..ced7028b3 100644 --- a/plugins/blog/src/api/modules/posts/routes/get.route.ts +++ b/plugins/blog/src/api/modules/posts/routes/get.route.ts @@ -7,7 +7,6 @@ import { } from "@vitnode/core/api/lib/with-pagination"; import { eq } from "drizzle-orm"; -import { CONFIG_PLUGIN } from "@/const"; import { blog_categories } from "@/database/categories"; import { blog_posts } from "@/database/posts"; @@ -27,7 +26,6 @@ export const zodPostSchema = z.object({ }); export const postsRoute = buildRoute({ - pluginId: CONFIG_PLUGIN.pluginId, route: { method: "get", path: "/", diff --git a/plugins/blog/src/const.ts b/plugins/blog/src/const.ts index 5195feb76..f6af0ec32 100644 --- a/plugins/blog/src/const.ts +++ b/plugins/blog/src/const.ts @@ -1,3 +1,7 @@ +import { setCurrentPluginId } from "@vitnode/core/api/lib/plugin-context"; + export const CONFIG_PLUGIN = { pluginId: "@vitnode/blog" as const, }; + +setCurrentPluginId(CONFIG_PLUGIN.pluginId);