@adpal/shared-lib
v1.1.0
Published
Shared utilities for AdPal projects: errors, logging, retry, validation
Maintainers
Readme
@adpal/shared-lib
Общие утилиты для проектов AdPal / Shared utilities for AdPal projects.
Установка / Installation
npm install @adpal/shared-libДля доступа к GitHub Packages:
npm login --registry=https://npm.pkg.github.com --scope=@adpalМодули / Modules
Errors (Ошибки)
import { AppError, VoyageApiError, isAppError, wrapError } from '@adpal/shared-lib';
// Кастомная ошибка
throw new VoyageApiError('Rate limited', 429, { tokens: 1500 });
// Проверка типа
if (isAppError(error) && error.retryable) {
// Можно повторить
}Logger (Логирование)
import { Logger, createTimer } from '@adpal/shared-lib';
const log = new Logger('my-module');
const timer = createTimer();
log.info('Операция начата');
await doSomething();
log.info('Операция завершена', { durationMs: timer() });Retry
import { withRetry, retryApiCall } from '@adpal/shared-lib';
// С полным контролем
const result = await withRetry(
() => fetch('https://api.example.com'),
{ maxAttempts: 3, baseDelayMs: 1000 }
);
// Для API вызовов
const data = await retryApiCall(() => fetchFromVoyage());Schemas (Zod валидация)
import {
VoyageEmbeddingResponseSchema,
safeParse
} from '@adpal/shared-lib';
const data = await response.json();
const parsed = safeParse(VoyageEmbeddingResponseSchema, data);
if (!parsed) throw new Error('Invalid response');Разработка / Development
npm install
npm run build
npm testБезопасность / Security
Этот пакет не содержит секретов. Все API ключи передаются через process.env в runtime.