@lithium-platform/commons
v1.1.2
Published
Shared infrastructure utilities for Lithium platform services
Readme
@lithium-platform/commons
Общая инфраструктурная библиотека для сервисов Lithium (Node 18+, TypeScript). Содержит переиспользуемые утилиты без привязки к домену конкретного продукта (имена кэшей, бизнес-сущности и т.п. остаются в сервисах-потребителях).
Публикуется в npm как @lithium-platform/commons (текущая версия см. в package.json).
Установка
npm install @lithium-platform/commonsДля доступа только к Redis-клиенту (без подтягивания остального barrel при необходимости):
# импорт подпути (см. package.json "exports")
import { initRedis, getRedisClient, closeRedis } from '@lithium-platform/commons/redis';Модули (корневой экспорт import { … } from '@lithium-platform/commons')
| Путь в src/ | Назначение |
|---------------|------------|
| cache/ | BentoCache: createTwoLevelCache (L1 memory + L2 Redis + bus), nodeRedisDriver, nodeRedisBus; createLocalMemoryBento — один BentoCache с набором L1-only store, имена и префиксы задаёт вызывающий код (stores: [{ name, prefix? }]). |
| redis/ | Синглтон Redis (redis v5): initRedis, getRedisClient, closeRedis, createRedisClient, RedisClientOptions. |
| logger/ | getLogger, getRootLogger, уровни из env, scope-ы. |
| config/ | Парсинг env: parseDurationMs, parseBoolEnv, envString, envInt, envBool, envDuration; типы/парсинг для Kafka consumer mode / SASL. |
| kafka/ | Общие вспомогательные части для Kafka (при наличии peer @platformatic/kafka). |
| db/ | Общие вспомогательные части для Sequelize/pg (при наличии peer). |
Peer-зависимости
Часть функциональности требует peer (опционально, см. peerDependenciesMeta в package.json):
bentocache— дляcache/;sequelize,pg— дляdb/;@platformatic/kafka— для Kafka-хелперов.
Сервис, использующий только Redis, может не подключать bentocache, если не импортирует модуль cache.
Сборка и тесты
npm run build # tsc → dist/
npm test # vitestПотребители в монорепо Lithium
Типичные зависимости: lithium-back, lithium-flow, lithium-chatbots, lithium-parsers, lithium-tg (версия в их package.json, например ^1.1.1). Документация по платформе: корневой репозиторий docs/services-catalog.md, docs/architecture.md.
