При написании приложения на electron, как следует организовать взаимодействие с ORM?
Структура исходников у меня такова:
- Папка
main- отвечает за бекенд-составляющую (загрузка electron-приложения, IPC, сервисный слой) - Папка
renderer- отвечает за фронтенд-составляющую (vue-приложение со стейт-менеджером pinia).
Логика приложения заключается в CRUD-операциях на БД словаря и в синхронизации на google-диск, чтобы можно было удобно добавлять в приложение-словарик на andoird слова, не переключаясь лишний раз на мобильный.
Возможно, будет важно. База данных - SQLite, ORM - Prisma, поскольку поддерживается 1st party интроспекция.
Из описанной логики вытекает необходимость как-то работать со стейтом БД во фронтенде. Для работы со стейтом отлично подходит pinia, однако всё усложняется тем, что всё это крутится внутри electron, следовательно и логика БД, предположительно, должна находиться в сервисном слое main.
Моё первое предположение - сделать для нужных сервисов соответствующие сторы pinia. Внутри сторов для общения с сервисами на бекенд-стороне использовать electron-средства IPC. Таким образом, скрыть детали реализации бекенд-логики от фронтенда.
Но я не уверен, насколько правилен будет такой подход. Возможно, есть лучшие альтернативы? Может ли мой подход иметь проблемы в будущем? Прошу критики и предложений.