Валидация параметров

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

Основные параметры и их валидация

Основной функционал BasicLightbox ориентирован на создание модальных окон, которые могут отображать изображения, текст или другие элементы. Все параметры, передаваемые в конструктор, должны удовлетворять определённым условиям.

Параметры конструктора

При инициализации модального окна передаются следующие ключевые параметры:

  • html (string | HTMLElement): Данный параметр представляет собой HTML-контент, который будет отображён в модальном окне. Он может быть строкой или элементом HTMLElement. Валидация заключается в проверке типа данных. Если передан невалидный тип (например, объект), библиотека выбрасывает ошибку.

  • onShow (function): Эта функция будет вызвана при открытии модального окна. Она является необязательной, но если передана, необходимо удостовериться, что это именно функция. Валидация функции ограничивается проверкой её типа и обеспечением корректной обработки контекста.

  • onClose (function): Функция, которая будет вызвана при закрытии окна. Валидация аналогична параметру onShow, и важно, чтобы переданный объект был именно функцией.

  • close (boolean): Определяет, можно ли закрывать окно по клику на область за пределами модального окна. Значение по умолчанию — true. Валидация этого параметра заключается в проверке типа данных: параметр должен быть булевым значением.

  • esc (boolean): Определяет, будет ли окно закрываться при нажатии клавиши ESC. Валидация аналогична параметру close и проверяется как булевое значение.

Валидация параметров в процессе инициализации

Перед тем как модальное окно будет отображено, библиотека проводит валидацию каждого из параметров. В случае, если один из параметров не соответствует ожидаемому типу или имеет некорректное значение, библиотека выбрасывает ошибку.

Пример:

const lightbox = basicLightbox.create('<div>Мой контент</div>', {
  onShow: function() {
    console.log('Окно открыто');
  },
  onClose: function() {
    console.log('Окно закрыто');
  },
  close: true,
  esc: false
});

Здесь передаются параметры, соответствующие ожидаемым типам. Если бы, например, параметр close был передан как строка, библиотека выбросила бы ошибку с описанием типа несоответствия.

Обработка ошибок при валидации

Для обработки ошибок в библиотеке используется стандартная JavaScript ошибка (Error), которая выбрасывается в случае, если один из параметров не прошёл валидацию. Это позволяет разработчикам эффективно отлавливать неправильные вызовы и предотвращать нежелательные побочные эффекты.

Пример обработки ошибки валидации:

try {
  const lightbox = basicLightbox.create('<img src="image.jpg" />', {
    close: "true" // Ошибка! Ожидается булевое значение
  });
} catch (error) {
  console.error(error.message); // "Invalid parameter: close should be a boolean"
}

В данном случае, строка "true" не является допустимым значением для параметра close, и будет выброшено исключение с соответствующим сообщением об ошибке.

Расширенная валидация параметров

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

Пример дополнительной проверки:

function validateCustomParameter(value) {
  if (typeof value !== 'string' || value.length < 5) {
    throw new Error('Invalid custom parameter: must be a string with at least 5 characters');
  }
}

const customValue = 'test'; // Некорректное значение
validateCustomParameter(customValue); // Выбросит ошибку

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

Заключение

Валидация параметров в BasicLightbox является неотъемлемой частью работы с библиотекой, гарантируя, что передаваемые данные соответствуют строгим типам и стандартам. При правильной валидации ошибки можно предотвратить на ранних стадиях, что сделает приложение более надёжным и удобным в использовании.