Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 в фронтовые проекты
- Host: GitHub
- URL: https://github.com/dmitriypereverza/ts-di-injector
- Owner: dmitriypereverza
- Created: 2020-06-06T19:01:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-10T22:56:08.000Z (almost 3 years ago)
- Last Synced: 2023-03-06T18:22:11.115Z (almost 2 years ago)
- Topics: clear-architecture, dependency-injection, di, di-ts, typescript
- Language: TypeScript
- Homepage:
- Size: 1.48 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
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 контейнера находится в одном файле.
- Типизация зависимостей.