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

Я столкнулся со странной проблемой с 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 возвращает истину.

Если я инициализирую 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 в библиотеке и yarn link "luxon-test-lib" в приложении после этого.

1 ответ

Решение

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

Другие вопросы по тегам