Обратная совместимость

Обратная совместимость в контексте библиотеки iziToast означает способность уведомлений работать с предыдущими версиями API без изменения существующего кода. Эта особенность особенно важна при обновлении проектов, где нельзя полностью переписывать интеграцию уведомлений.


Основные принципы

  1. Сохраняется API вызовов: Методы iziToast.show(), iziToast.success(), iziToast.error() и другие остаются доступными и работают так же, как в предыдущих версиях. Любые новые параметры, добавленные в последних релизах, не ломают существующие уведомления, если они не указаны явно.

  2. Совместимость с параметрами конфигурации: Параметры title, message, position, timeout, theme и icon остаются опциональными и могут использоваться по старой схеме. Новые параметры, такие как rtl или transitionIn, могут быть добавлены без нарушения работы старого кода, так как их отсутствие не вызывает ошибок.

  3. Работа с темами: Пользовательские и встроенные темы сохраняют корректное отображение уведомлений. Если новая версия добавляет тему, она выбирается по имени, и старые темы остаются доступными.


Примеры обратной совместимости

// Вызов iziToast с минимальной конфигурацией, полностью совместимый с предыдущими версиями
iziToast.show({
    title: 'Пример',
    message: 'Сообщение остаётся совместимым',
});
// Использование нового параметра transitionIn при сохранении старой совместимости
iziToast.success({
    title: 'Успех',
    message: 'Сообщение с анимацией',
    transitionIn: 'bounceInLeft'  // добавлен новый эффект, старые уведомления остаются неизменными
});
  • Параметры timeout, position и icon продолжают работать по старым правилам.
  • Отсутствие новых параметров не вызывает ошибок.

Управление версиями

  1. Замораживание версии: Для сохранения обратной совместимости можно зафиксировать версию iziToast через менеджер пакетов:
npm install izitoast@1.4.0
  1. Проверка существующих уведомлений: Старые вызовы необходимо протестировать после обновления библиотеки. Особое внимание уделяется кастомным темам и позиционированию.

  2. Добавление новых возможностей: Новые функции можно использовать выборочно, не затрагивая старый код:

iziToast.show({
    title: 'Информация',
    message: 'Новое уведомление с опцией drag',
    drag: true // новая опция, не влияющая на существующие уведомления
});

Потенциальные ограничения

  • Некоторые параметры новых версий могут конфликтовать с кастомными стилями. Для обеспечения полной совместимости необходимо проверять CSS селекторы.
  • Новые анимации могут вести себя иначе в старых браузерах, поэтому при обновлении следует тестировать кросс-браузерность.
  • Встроенные шрифты и иконки в новой версии могут быть другими, что может слегка изменить визуальное восприятие уведомления.

Рекомендации по поддержке старых уведомлений

  • Использовать минимально необходимые параметры в старых вызовах.
  • При добавлении новых опций создавать отдельные вызовы или новые функции, чтобы старый код остался нетронутым.
  • Хранить версию библиотеки в package.json для отслеживания изменений и возможности отката.

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