README.md 4.4 KB

@e22m4u/js-debug

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

Установка

npm install @e22m4u/js-debug

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

ESM

import {createDebugger} from '@e22m4u/js-debug';

CommonJS

const {createDebugger} = require('@e22m4u/js-debug');

Примеры

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

import {createDebugger} from '@e22m4u/js-debug';

const debug = createDebugger();
debug('Получено значение %v.', 100);
debug('Получены значения %l.', ['foo', 10, true]);
// Получено значение 100.
// Получены значения "foo", 10, true.

Вывод содержания объекта.

import {createDebugger} from '@e22m4u/js-debug';

const debug = createDebugger();
debug({
  email: 'john.doe@example.com',
  phone: {
    mobile: '+1-555-123-4567',
    home: '+1-555-987-6543'
  },
});
// {
//   email: 'john.doe@example.com',
//   phone: {
//     mobile: '+1-555-123-4567',
//     home: '+1-555-987-6543'
//   }
// }

Вывод описания объекта.

import {createDebugger} from '@e22m4u/js-debug';

const debug = createDebugger();
debug({
  orderId: 988,
  date: '2023-10-27',
  totalAmount: 120.50,
}, 'Детали заказа:');

// Детали заказа:
// {
//   orderId: 988,
//   date: '2023-10-27',
//   totalAmount: 120.50,
// }

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

import {createDebugger} from '@e22m4u/js-debug';

const debug = createDebugger('myApp');
debug('Hello world');
// myApp Hello world

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

import {createDebugger} from '@e22m4u/js-debug';

process.env['DEBUGGER_NAMESPACE'] = 'myApp';

const debug = createDebugger();
debug('Hello world');
// myApp Hello world

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

import {createDebugger} from '@e22m4u/js-debug';

const debug1 = createDebugger();
const debug2 = debug1.withNs('myApp');
const debug3 = debug2.withNs('myService');
debug1('Hello world');
debug2('Hello world');
debug3('Hello world');
// Hello world
// myApp Hello world
// myApp:myService Hello world

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

import {createDebugger} from '@e22m4u/js-debug';

const debug1 = createDebugger().withHash();
debug1('Hi John');
debug1('Hi Tommy');
// r34s Hi John
// r34s Hi John

const debug2 = createDebugger().withHash();
debug2('Hi John');
debug2('Hi Tommy');
// ier0 Hi John
// ier0 Hi John

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

import {createDebugger} from '@e22m4u/js-debug';

const debug = createDebugger().withHash(15);
debug('Hi John');
debug('Hi Tommy');
// we1gf4uyc4dj8f0 Hi John
// we1gf4uyc4dj8f0 Hi Tommy

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

import {createDebugger} from '@e22m4u/js-debug';

const debug1 = createDebugger().withOffset(1);
const debug2 = createDebugger().withOffset(2);
const debug3 = createDebugger().withOffset(3);
debug1('Hello world');
debug2('Hello world');
debug3('Hello world');
// Hello world
//    Hello world
//        Hello world

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

import {createDebugger} from '@e22m4u/js-debug';

const debug = createDebugger('myApp').withNs('myService').withHash();
const debugWo1 = debug.withOffset(1);

const contact = {
  email: 'john.doe@example.com',
  phone: {
    mobile: '+1-555-123-4567',
    home: '+1-555-987-6543'
  },
}

debug('Обход участников программы.');
debugWo1('Проверка контактов %v-го участника.', 1);
debugWo1(contact, 'Контакты участника:');

// myApp:myService:o3pk Обход участников программы.
// myApp:myService:o3pk   Проверка контактов 1-го участника.
// myApp:myService:o3pk   Контакт участника:
// myApp:myService:o3pk   {
// myApp:myService:o3pk     email: 'john.doe@example.com',
// myApp:myService:o3pk     phone: {
// myApp:myService:o3pk       mobile: '+1-555-123-4567',
// myApp:myService:o3pk       home: '+1-555-987-6543'
// myApp:myService:o3pk     },
// myApp:myService:o3pk   }

Тесты

npm run test

Лицензия

MIT