0.1.1 • Published 9 months ago

@kiz8/common v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@kiz8/common

Общие утилиты и компоненты для проектов Reputation Management.

Установка

pnpm add @kiz8/common

Функциональность

Провайдер зависимостей (DI)

Модуль предоставляет простую систему внедрения зависимостей для Inngest-функций.

import { getDependencyProvider } from '@kiz8/common';

const provider = getDependencyProvider();
await provider.init();

// Регистрация зависимостей
provider.register('serviceName', new MyService());

// Получение зависимостей
const service = provider.get<MyService>('serviceName');

Базовый класс для Inngest-функций

Модуль включает базовый класс BaseInngestFunction и фабрику для создания Inngest-функций.

import { 
  BaseInngestFunction, 
  InngestContext, 
  InngestFunctionFactory 
} from '@kiz8/common';

// Определение типа события
type MyEvent = {
  data: {
    id: string;
    name: string;
  }
};

// Создание класса функции
class MyFunction extends BaseInngestFunction<MyEvent> {
  protected async handleEvent(
    context: InngestContext<MyEvent>
  ): Promise<unknown> {
    const { id, name } = context.event.data;
    
    // Использование логгера
    this.logger.info(`Processing event for ${name}`);
    
    // Получение зависимостей
    const service = this.getDependency<MyService>('serviceName');
    
    // Обработка шагов
    const result = await context.step.run('process-data', async () => {
      return await service.process(id);
    });
    
    return { success: true, result };
  }
}

// Создание функции Inngest
const myFunction = inngest.createFunction(
  { id: 'my-function', name: 'My Function' },
  { event: 'my.event' },
  async (context) => {
    const dependencyProvider = await getDependencyProvider();
    const factory = new InngestFunctionFactory();
    return factory.createFunction(MyFunction, dependencyProvider)(context);
  }
);

Разработка

Сборка

pnpm build

Разработка с автоматической пересборкой

pnpm dev

Линтинг

pnpm lint

Запуск тестов

pnpm test

Структура

  • src/dependency-injection.ts - провайдер зависимостей
  • src/inngest.ts - базовые классы и интерфейсы для работы с Inngest
  • src/index.ts - точка входа и реэкспорт

Совместимость

Модуль использует ESM модули с указанием расширений файлов в импортах. Для корректной работы требуется ESM-совместимая среда выполнения.

0.1.1

9 months ago

0.1.0

9 months ago