@whook/whook
Version:
Build strong and efficient REST web services.
27 lines (26 loc) • 1.5 kB
TypeScript
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>>;