UNPKG

@whook/whook

Version:

Build strong and efficient REST web services.

27 lines (26 loc) 1.5 kB
import { type Dependencies, type ServiceInitializer, type ProviderInitializer } from 'knifecycle'; import { type JsonValue } from 'type-fest'; import { type ExpressiveJSONSchema } from 'ya-json-schema-types'; import { type WhookHandlerWrapper } from './wrappers.js'; import { type WhookEnvironmentsConfig } from '../libs/environments.js'; import { type WhookModuleAsideSchemas } from '../index.js'; export declare const DEFAULT_CONSUMER_CONFIG: WhookConsumerConfig; export interface WhookBaseConsumerConfig { environments?: WhookEnvironmentsConfig; targetHandler?: string; } export interface WhookConsumerConfig extends WhookBaseConsumerConfig { } export interface WhookConsumerDefinition { name: string; summary?: string; schema: ExpressiveJSONSchema; config?: WhookConsumerConfig; } export type WhookConsumerHandler<T extends JsonValue, D extends WhookConsumerDefinition = WhookConsumerDefinition> = (input: T, definition?: D) => Promise<void>; export type WhookConsumerHandlerInitializer<T extends JsonValue, D extends Dependencies = Record<string, unknown>> = ServiceInitializer<D, WhookConsumerHandler<T>> | ProviderInitializer<D, WhookConsumerHandler<T>>; export interface WhookConsumerModule<T extends JsonValue = JsonValue> extends WhookModuleAsideSchemas { default: WhookConsumerHandlerInitializer<T>; definition: WhookConsumerDefinition; } export type WhookConsumerHandlerWrapper<T extends JsonValue = JsonValue> = WhookHandlerWrapper<WhookConsumerHandler<T>>;