js-debug
Языки
- JavaScript100%
@e22m4u/js-debug
Утилита вывода сообщений отладки для JavaScript.
Содержание
Установка
Поддержка ESM и CommonJS стандартов.
ESM
CommonJS
Использование
Интерполяция строк (см. спецификаторы @e22m4u/js-format).
Дамп значений.
Заголовочное сообщение над дампом.
Определение пространства имен.
Определение глобального пространства имен в переменных окружения.
Определение глобального пространства имен в локальном хранилище (браузер).
Отключение пространства имен из переменной окружения и локального хранилища.
Расширение сегментов пространства имен.
Использование статичного хэша.
Определение длины хэша.
Использование смещений.
Комбинирование методов.
Управление выводом
По умолчанию вызовы функции ничего не выводят. Чтобы увидеть отладочные
сообщения, необходимо указать, какие именно пространства имен вас интересуют.
Это делается с помощью специального паттерна (шаблона). Механизм включения
зависит от среды выполнения.
Node.js: Переменная окружения DEBUG
В среде Node.js используется переменная окружения DEBUG. Вы можете установить её при запуске вашего скрипта.
Браузер: localStorage.debug
В веб-браузерах для управления выводом используется ключ локального
хранилища. Значение данного ключа можно установить через консоль разработчика.
i. После изменения обычно требуется перезагрузить
страницу, чтобы изменения вступили в силу.
Синтаксис паттернов
- Точное совпадение (например,
);myApp:myService - Wildcard (*):
соответствуетmyApp*,myAppи т.д.;myApp:myService - Несколько паттернов можно указать разделив их запятой или пробелом;
- Включить всё:
включает вывод для всех пространств имен;*
Примеры шаблонов в окружении Node.js:
Класс Debuggable
Класс реализует метод , который принимает
любой другой метод потомка данного класса и возвращает новый отладчик,
сконфигурированный так, чтобы пространство имен отладчика содержало название
класса, название метода и хэш, позволяющий различать сообщения отладки
одного и того же метода в разных вызовах.
┌────────────────────────────────────┐
│ класс | метод | хэш вызова │
" calculator : multiply : ds83 "
└────────────────────────────────────┘
Создание экземпляра автоматически логируется.
Пример вывода сообщений отладки двух методов одного класса.
Использование переменной окружения .
DebuggableOptions
Первый аргумент класса принимает объект со следующими свойствами.
- префиксное пространство имен;namespace?: string- игнорировать глобальные пространства имен;noGlobalNamespace?: boolean- не выводить сообщение о создании экземпляра;noInstantiationMessage?: boolean
DebuggableOptions.namespace
Значение опции добавляет префиксное пространство имен.
DebuggableOptions.noGlobalNamespace
Значение опции позволяет игнорировать глобальные
пространства имен из переменных окружения (на сервере) и локального хранилища
(в браузере). Ниже показан пример использования данной опции.
Тесты
Лицензия
MIT