Я работал над архитектурой LibreDB Studio — IDE для баз данных на TypeScript, которая поддерживает несколько SQL/NoSQL баз данных.

Работая над слоем провайдеров, я пришёл к довольно строгой архитектуре провайдеров, чтобы сделать добавление новых баз данных безопаснее и сократить объём основного кода, который нужно менять.

Я написал об этой архитектуре здесь:
https://libredb.org/blog/building-universal-database-provider-typescript/

Текущий процесс добавления провайдера задокументирован здесь:
https://github.com/libredb/libredb-studio/blob/main/docs/ADDING_A_PROVIDER.md

Архитектура работает достаточно хорошо, но у меня возник более широкий вопрос.

Сейчас добавление нового провайдера по-прежнему означает добавление его в основную кодовую базу Libredb-Studio. В конечном итоге я хотел бы перейти к чему-то более похожему на экосистему плагинов:

Читать далее