js-debug

0

Описание

Утилита вывода сообщений отладки для JavaScript

Языки

  • JavaScript100%
README.md

@e22m4u/js-debug

Утилита вывода сообщений отладки для JavaScript.

Содержание

Установка

Поддержка ESM и CommonJS стандартов.

ESM

CommonJS

Использование

Интерполяция строк (см. спецификаторы @e22m4u/js-format).

Дамп значений.

Заголовочное сообщение над дампом.

Определение пространства имен.

Определение глобального пространства имен в переменных окружения.

Определение глобального пространства имен в локальном хранилище (браузер).

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

Расширение сегментов пространства имен.

Использование статичного хэша.

Определение длины хэша.

Использование смещений.

Комбинирование методов.

Управление выводом

По умолчанию вызовы функции

debug
ничего не выводят. Чтобы увидеть отладочные сообщения, необходимо указать, какие именно пространства имен вас интересуют. Это делается с помощью специального паттерна (шаблона). Механизм включения зависит от среды выполнения.

Node.js: Переменная окружения
DEBUG

В среде Node.js используется переменная окружения DEBUG. Вы можете установить её при запуске вашего скрипта.

Браузер: localStorage.debug

В веб-браузерах для управления выводом используется ключ

debug
локального хранилища. Значение данного ключа можно установить через консоль разработчика.

i. После изменения

localStorage.debug
обычно требуется перезагрузить страницу, чтобы изменения вступили в силу.

Синтаксис паттернов

  • Точное совпадение (например,
    myApp:myService
    );
  • Wildcard (*):
    myApp*
    соответствует
    myApp
    ,
    myApp:myService
    и т.д.;
  • Несколько паттернов можно указать разделив их запятой или пробелом;
  • Включить всё:
    *
    включает вывод для всех пространств имен;

Примеры шаблонов в окружении Node.js:

Класс Debuggable

Класс реализует метод

getDebuggerFor(method: Function)
, который принимает любой другой метод потомка данного класса и возвращает новый отладчик, сконфигурированный так, чтобы пространство имен отладчика содержало название класса, название метода и хэш, позволяющий различать сообщения отладки одного и того же метода в разных вызовах.

┌────────────────────────────────────┐ │ класс | метод | хэш вызова │ " calculator : multiply : ds83 " └────────────────────────────────────┘

Создание экземпляра автоматически логируется.

Пример вывода сообщений отладки двух методов одного класса.

Использование переменной окружения

DEBUGGER_NAMESPACE
.

DebuggableOptions

Первый аргумент класса

Debuggable
принимает объект со следующими свойствами.

  • namespace?: string
    - префиксное пространство имен;
  • noGlobalNamespace?: boolean
    - игнорировать глобальные пространства имен;
  • noInstantiationMessage?: boolean
    - не выводить сообщение о создании экземпляра;

DebuggableOptions.namespace

Значение опции

namespace
добавляет префиксное пространство имен.

DebuggableOptions.noGlobalNamespace

Значение

true
опции
noGlobalNamespace
позволяет игнорировать глобальные пространства имен из переменных окружения (на сервере) и локального хранилища (в браузере). Ниже показан пример использования данной опции.

Тесты

Лицензия

MIT