Metautil — утилиты

Базовый пакет утилит, используемый всеми библиотеками Metarhia. Аналог lodash/ramda, но компактнее и под нужды стека.

Категории функций

  • Strings — генерация ID, hash, escaping, форматирование.
  • Crypto — pbkdf2, hash, HMAC (без зависимостей кроме crypto).
  • Object — деструктуризация, deep merge, projection, pick/omit.
  • Asyncdelay, timeout, race, простые комбинаторы.
  • Number/Array — random, range, sort helpers.
  • Network — парсинг URL, валидация IP, утилиты для HTTP/2.

Примеры

const { generateKey, hash } = require('metautil');

const id = generateKey(8, 'Aa0');  // 8-символьный ID
const h = hash('secret', 'sha256');
const { delay, timeout } = require('metautil');

await delay(1000);
await timeout(5000, somePromise);

Принцип

«Никакой lodash в зависимостях. Стандартная библиотека JavaScript бедная — мы пишем свою.»

автор писал (2025-12-04): «NPM полон вирусов, в JavaScript и TypeScript нужна стандартная библиотека для…». Metautil — попытка такой стандартной библиотеки для Node.js.

Без зависимостей

Цель — нулевые внешние зависимости. Только модули Node.js (crypto, url, path).

🎓 Источники

См. также