Metautil — утилиты
Базовый пакет утилит, используемый всеми библиотеками Metarhia. Аналог lodash/ramda, но компактнее и под нужды стека.
Категории функций
- Strings — генерация ID, hash, escaping, форматирование.
- Crypto — pbkdf2, hash, HMAC (без зависимостей кроме
crypto). - Object — деструктуризация, deep merge, projection, pick/omit.
- Async —
delay,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).
🎓 Источники
- 🎓 Летняя школа 2022 #15 — ревью SMTP, HTTP/2 в metacom, metautil · 2022-08-12
- 🎓 Летняя школа 2022 #17 — ревью PR в metacom и metautil · 2022-08-18