Skip to main content

electron-api-and-ipc

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

소스 정보

저장소
massCodeIO/massCode
최근 소스 활동
2026년 4월 27일 07:09
감지된 SKILL.md 언어
러시아어
스타
7,075
포크
279

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기