При написании приложения на electron, как следует организовать взаимодействие с ORM?

Структура исходников у меня такова:

  • Папка main - отвечает за бекенд-составляющую (загрузка electron-приложения, IPC, сервисный слой)
  • Папка renderer - отвечает за фронтенд-составляющую (vue-приложение со стейт-менеджером pinia).

Логика приложения заключается в CRUD-операциях на БД словаря и в синхронизации на google-диск, чтобы можно было удобно добавлять в приложение-словарик на andoird слова, не переключаясь лишний раз на мобильный.

Возможно, будет важно. База данных - SQLite, ORM - Prisma, поскольку поддерживается 1st party интроспекция.

Из описанной логики вытекает необходимость как-то работать со стейтом БД во фронтенде. Для работы со стейтом отлично подходит pinia, однако всё усложняется тем, что всё это крутится внутри electron, следовательно и логика БД, предположительно, должна находиться в сервисном слое main.

Моё первое предположение - сделать для нужных сервисов соответствующие сторы pinia. Внутри сторов для общения с сервисами на бекенд-стороне использовать electron-средства IPC. Таким образом, скрыть детали реализации бекенд-логики от фронтенда.

Но я не уверен, насколько правилен будет такой подход. Возможно, есть лучшие альтернативы? Может ли мой подход иметь проблемы в будущем? Прошу критики и предложений.


Ответы (0 шт):