Навык помогает спроектировать и создать Convex component с собственными таблицами и функциями, а затем подключить его к приложению через небольшой API. Он также проверяет границы между component и приложением: например, оставляет аутентификацию и доступ к переменным окружения в приложении.
Возможности
- Помогает выбрать локальный, пакетируемый или гибридный component и прочитать соответствующий reference-файл.
- Создаёт структуру component с
convex.config.ts,schema.tsи файлами функций. - Настраивает подключение через
app.use(...)и вызовы черезcomponents.<name>с помощьюctx.runQuery,ctx.runMutationилиctx.runAction. - Подсказывает, как передавать аутентификацию, переменные окружения и ID приложения через границу component.
- Проверяет codegen и типы командами Convex.
Когда использовать
- Создаёте новый Convex component в существующем приложении.
- Выносите повторно используемую backend-логику в отдельный component.
- Разрабатываете интеграцию, которой нужны собственные таблицы и workflows.
- Хотите использовать функциональность Convex в нескольких приложениях.
Примеры
Локальный component объявляется через defineComponent:
// convex/components/notifications/convex.config.ts
import { defineComponent } from "convex/server";
export default defineComponent("notifications");
Подключение component в приложении:
// convex/convex.config.ts
import { defineApp } from "convex/server";
import notifications from "./components/notifications/convex.config.js";
const app = defineApp();
app.use(notifications);
export default app;
Вызов функции component из приложения:
await ctx.runMutation(components.notifications.lib.send, {
userId,
message: args.message,
});
Проверка проекта:
npx convex dev