Как построить библиотеки с двухсторонними одноранговыми зависимостями в машинописи? - PullRequest
1 голос
/ 13 июня 2019

У меня есть две библиотеки, одна из которых отправляет запросы, а другая - протоколирование. Обе библиотеки требуют настройки от клиента, который всегда будет использовать обе из них.

Библиотека запросов выполняет обращения к библиотеке журналов и отображает ее как одноранговую зависимость.

Библиотека журналов имеет одну функцию, которая вызывает метод в библиотеке запросов для вывода журналов. Этот метод свободен от вызовов журнала, чтобы избежать бесконечных циклов. В библиотеке журналов также есть библиотека запросов, указанная в качестве одноранговой зависимости.

Когда я пытаюсь запустить tsc в библиотеке запросов, он жалуется, что не может импортировать сам. Когда он импортирует библиотеку журналов, библиотека журналов пытается импортировать библиотеку запросов, которую невозможно найти. Очевидно, я не хочу публиковать каждую версию библиотеки запросов с предыдущей собственной версией, вложенной внутрь, поэтому установка старой версии не будет работать.

Я попытался динамически загрузить библиотеку запросов в библиотеке журналов с помощью машинописи await import(), но она, по-видимому, все еще пытается открыть библиотеку запросов, что вызывает ошибку.

Каков наилучший способ реализации двусторонних библиотечных отношений?

1 Ответ

1 голос
/ 13 июня 2019

двусторонние одноранговые зависимости в машинописи?

Вы этого не делаете.Не в JavaScript, не в TypeScript.Круговые зависимости не хороши.

Исправлено

Изолировать круглость в третьей библиотеке.

До:

A -> <- B 

После:

A -> Common
B -> Common 

Если вы не можете думать о Common, тогда A & B действительно должно быть 1 (вместоиз 2)

...