Включение режима отладки

Назначение режима отладки

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

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

  • инициализация экземпляра форматтера;
  • применение пользовательских настроек;
  • обработка пользовательского ввода;
  • преобразование числовых значений в строковое представление;
  • валидация допустимых символов и ограничений.

Способы включения режима отладки

Включение режима отладки выполняется через конфигурационный объект при создании экземпляра AutoNumeric.

const anElement = new AutoNumeric('#input', {
    decimalPlaces: 2,
    digitGroupSeparator: ' ',
    decimalCharacter: '.',
    debug: true
});

При установке параметра debug: true библиотека начинает выводить диагностическую информацию в консоль окружения (browser console или Node.js console, если используется серверная обёртка).


Поведение библиотеки при включённом debug

После активации режима отладки изменяется характер внутренних операций:

1. Логирование инициализации

При создании экземпляра фиксируются:

  • DOM-элемент, к которому привязан инстанс;
  • итоговая конфигурация после слияния пользовательских и дефолтных параметров;
  • результат валидации параметров.

Формируется лог наподобие:

[AutoNumeric] Initializing instance on element #input
[AutoNumeric] Options validated successfully
[AutoNumeric] Final configuration computed

2. Контроль входных значений

При каждом вводе символа или вставке данных выполняется трассировка:

  • исходное значение до обработки;
  • очищенное значение после фильтрации;
  • промежуточные шаги нормализации;
  • итоговое отформатированное значение.

Особое внимание уделяется случаям, когда ввод не соответствует числовому формату. В таких ситуациях debug-режим фиксирует причину отклонения:

  • запрещённый символ;
  • нарушение формата десятичного разделителя;
  • превышение количества знаков после запятой;
  • конфликт группировки разрядов.

3. Проверка конфигурации

AutoNumeric выполняет строгую проверку параметров при инициализации. В debug-режиме каждая проверка сопровождается пояснением:

  • корректность decimalCharacter и digitGroupSeparator;
  • совместимость локализационных настроек;
  • допустимость числовых ограничений (minimumValue, maximumValue);
  • корректность комбинаций флагов форматирования.

При обнаружении потенциально некорректной комбинации параметров выводится предупреждение без остановки выполнения.


Типы сообщений режима отладки

Диагностический вывод условно делится на несколько категорий.

Информационные сообщения

Используются для фиксации стандартного поведения:

  • инициализация экземпляра;
  • применение конфигурации;
  • обновление значения.

Предупреждения

Возникают при некритичных проблемах:

  • пересечение ограничений формата;
  • потенциально неоднозначные настройки локали;
  • автоматическая нормализация параметров.

Ошибки конфигурации

Фиксируются при невозможности корректной работы:

  • несовместимые параметры группировки;
  • некорректные числовые ограничения;
  • отсутствие обязательных значений при строгой валидации.

Влияние debug-режима на производительность

Включение режима отладки увеличивает нагрузку на систему за счёт:

  • дополнительного формирования строк логов;
  • увеличения количества проверок состояния;
  • вывода данных в консоль;
  • сохранения промежуточных вычислений.

Особенно заметно влияние в сценариях:

  • массовой инициализации полей ввода;
  • динамического обновления таблиц с числовыми значениями;
  • потокового ввода (input event на каждом символе).

В производственной среде debug-режим обычно отключается для минимизации затрат ресурсов.


Отладка событий ввода

AutoNumeric генерирует последовательность событий при изменении значения. В debug-режиме фиксируются:

  • input — каждое изменение содержимого поля;
  • focus — активация поля;
  • blur — потеря фокуса;
  • пользовательские события форматирования.

Для каждого события выводится контекст:

  • текущее значение до обработки;
  • значение после применения форматирования;
  • внутреннее числовое представление.

Анализ преобразований значений

Одной из ключевых функций debug-режима является визуализация цепочки преобразований.

Пример последовательности:

  1. Ввод строки: "12 345,678"
  2. Удаление пробелов и нормализация разделителей
  3. Преобразование в числовой тип
  4. Применение правил округления
  5. Формирование итоговой строки "12 345.68"

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


Отладка пользовательских конфигураций

При работе с расширенными настройками debug-режим позволяет выявлять ошибки в сложных конфигурациях.

Особенно полезен при использовании:

  • кастомных форматов локализации;
  • нестандартных разделителей групп разрядов;
  • ограничений диапазона значений;
  • автоматического форматирования валют.

При конфликте настроек фиксируется источник конфликта и параметры, которые привели к некорректному результату.


Использование debug при динамической инициализации

В сценариях, где AutoNumeric создаётся динамически (например, при рендере таблиц), debug-режим позволяет отслеживать жизненный цикл каждого экземпляра:

  • создание;
  • повторная инициализация;
  • уничтожение экземпляра;
  • переопределение конфигурации.

Фиксируются случаи повторной инициализации одного и того же DOM-элемента, что часто приводит к дублированию обработчиков событий.


Совместимость debug-режима с другими функциями

Режим отладки не изменяет бизнес-логику библиотеки, однако взаимодействует с рядом механизмов:

  • форматирование чисел — добавляется трассировка каждого преобразования;
  • валидация ввода — расширяется диагностикой причин отклонений;
  • API методов — логируются вызовы методов установки и получения значений;
  • событийная модель — фиксируются все внутренние и пользовательские события.

Практические сценарии диагностики

Отладочный режим наиболее эффективен в следующих случаях:

  • интеграция с нестандартными UI-фреймворками;
  • синхронизация нескольких связанных полей ввода;
  • работа с локализациями, отличными от стандартных европейских форматов;
  • миграция с других библиотек форматирования;
  • поиск причин несоответствия отображаемого и фактического числового значения.

Структура типичного debug-лога

Формат сообщений в консоли обычно включает:

  • префикс библиотеки;
  • тип события;
  • контекст объекта;
  • текущее значение;
  • дополнительную диагностическую информацию.

Пример структурированного вывода:

[AutoNumeric][INPUT] Element: #price
[AutoNumeric][RAW] "1 234,50"
[AutoNumeric][PARSED] 1234.5
[AutoNumeric][FORMATTED] "1 234.50"

Особенности поведения при ошибках выполнения

При возникновении критических ошибок debug-режим:

  • фиксирует стек вызовов (если доступен);
  • выводит состояние конфигурации на момент ошибки;
  • указывает на параметр, вызвавший сбой;
  • продолжает работу экземпляра, если это возможно без нарушения целостности данных.

Такой подход позволяет избегать полного отказа интерфейса при частичных ошибках конфигурации.


Ограничения режима отладки

Режим имеет ряд ограничений:

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