Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dmitriypereverza/ts-di-injector

Библиотека для внедрения Dependency Injection в фронтовые проекты
https://github.com/dmitriypereverza/ts-di-injector

clear-architecture dependency-injection di di-ts typescript

Last synced: about 2 months ago
JSON representation

Библиотека для внедрения Dependency Injection в фронтовые проекты

Awesome Lists containing this project

README

        

# Библиотека для внедрения Dependency Injection в фронтовые проекты

Для начала опишем простые, зависимые сервисы. C помощью DI мы сможем собирать такие сервисы автоматически.

![](publicaion/images/2.png)

Инициализируем конфигурация для зависимостей.
Дженериком можем передать нужные типы.

Поле `params` нужно для передачи глобальных параметров в DI контейнер.

Поле `classes` нужно для построения экземпляров классов.
В параметрах могут быть указаны значения из поля `params` (#key) и другие зависимоcти (@key).

На выходе получаем типизированный DI контейнер.

![](publicaion/images/1.png)

Импортируем DI в клиентский код. И пытаемся получить собранный сервис по ключу.

![](publicaion/images/3.png)

DI работает!

![](publicaion/images/4.jpg)

### В итоге используя данный инструмент мы получаем:
- Уменьшение зависимостей в нашем коде.
- Мы можем типизировать сервисы как интерфейсы и без труда подменять их.
- Конфигурирование DI контейнера находится в одном файле.
- Типизация зависимостей.