Luxon возвращает Invalid Interval, когда внутри библиотеки вызывается Interval.after - PullRequest
0 голосов
/ 06 октября 2018

Я сталкиваюсь со странной проблемой с Luxon, когда внутри библиотеки вызывается метод Interval.after.

const interval = Interval.after(dateTime, duration);

Следующий журнал поступает из приложения DateTime__Duration, и во второй строке записывается результат Interval.after:

1535806800000__PT330M
[2018-09-01T16:00:00.000+03:00 – 2018-09-01T21:30:00.000+03:00)

Однако, если я передам эти значения в библиотечный метод и укажу там журнал:

1535806800000__PT330M
Invalid Interval

Где причина invalid endpoints.Вызов isValid для DateTime и Duration возвращает true.

Если я инициализирую DateTime и Duration точно так же, как приложение, тогда Interval.after работает внутри библиотеки.

const interval2 = Interval.after(DateTime.fromISO('2018-09-01T16:00:00.000+03:00',
    {zone: 'Europe/Helsinki'}), Duration.fromObject({ minutes: 330 }));

Оба вызова используют одни и те же объекты, но Interval.after работает только внутри приложения.Любая идея, что может вызвать это?

ОБНОВЛЕНИЕ

Это, похоже, как-то связано с DateTime.Может ли он вести себя по-разному в приложении и в библиотеке, даже если версия luxon одинакова?Из того, что я понял, люксон не имеет зависимостей.

ОБНОВЛЕНИЕ 2

Мне удалось получить воспроизводящую версию этой установки.Исходные тексты приложений и библиотек можно загрузить с http://www.filedropper.com/luxon

. Для локального подключения библиотеки к приложению я использовал yarn link в библиотеке lib и yarn link "luxon-test-lib" в приложении после этого.

1 Ответ

0 голосов
/ 09 октября 2018

Причина этого произошла из-за локальной связи библиотеки во время разработки.Поэтому, хотя и приложение, и lib имели одинаковую версию luxon, они оба имели отдельные модули.Это привело к поломке библиотеки luxon из-за instanceof проверок, использованных там.

...