electron-api-and-ipc

star 6.8k

Use when changing massCode API routes, DTOs, IPC handlers, Electron bridges, or any renderer-to-main communication and storage-access boundaries.

massCodeIO By massCodeIO schedule Updated 4/27/2026

name: electron-api-and-ipc description: Use when changing massCode API routes, DTOs, IPC handlers, Electron bridges, or any renderer-to-main communication and storage-access boundaries.

Electron API And IPC

Overview

Все backend-возможности massCode живут в main process. Renderer получает доступ к данным и системным операциям только через Elysia API или IPC channels.

Renderer Access Rules

  • В renderer для данных используй import { api } from '~/renderer/services/api'.
  • В renderer для системных операций используй ipc.invoke('channel:action', payload).
  • Electron API из renderer доступен только через src/renderer/electron.ts.
  • Никогда не импортируй storage internals или backend-модули напрямую в renderer.

New API Endpoints

При добавлении нового endpoint:

  1. создай DTO в src/main/api/dto/;
  2. добавь route в src/main/api/routes/;
  3. запусти pnpm api:generate, чтобы обновить клиент.

Не оставляй API-клиент рассинхронизированным с route/DTO изменениями.

IPC Conventions

  • Для filesystem и system ops используй ipc.invoke(...).
  • Каналы должны укладываться в семейства:
    • fs:*
    • system:*
    • db:* — legacy или migration flows, не основной путь для новой функциональности
    • main-menu:*
    • prettier:*
    • spaces:*
    • theme:*

Good Boundaries

  • Renderer формирует intent и payload.
  • Main/API работает с данными приложения, файловой системой и system APIs.
  • Ответ возвращается обратно в renderer в виде DTO или IPC result, а не через shared mutable backend module.

Common Mistakes

  • Тянуть backend-модуль напрямую в renderer ради “удобства”.
  • Менять DTO/route без pnpm api:generate.
  • Добавлять system/file behavior в renderer вместо IPC handler.
  • Добавлять новые db:* flows там, где задача должна идти через текущую API/IPC модель приложения.
  • Создавать ad-hoc каналы, которые не укладываются в существующие channel families.
Install via CLI
npx skills add https://github.com/massCodeIO/massCode --skill electron-api-and-ipc
Repository Details
star Stars 6,837
call_split Forks 258
navigation Branch main
article Path SKILL.md
More from Creator