@whook/whook
Version:
Build strong and efficient REST web services.
57 lines (56 loc) • 2.83 kB
TypeScript
import { type LogService } from 'common-services';
import { type OpenAPIComponents, type OpenAPIExtension, type OpenAPIPaths } from 'ya-open-api-types';
import { type WhookPluginName } from './WHOOK_RESOLVED_PLUGINS.js';
import { type ExpressiveJSONSchema } from 'ya-json-schema-types';
import { type WhookRouteAsideComponentSuffix, type WhookRouteDefinition, type WhookRouteModule } from '../types/routes.js';
import { type WhookCommandDefinition } from '../types/commands.js';
import { type WhookCronDefinition } from '../types/crons.js';
import { type WhookTransformerDefinition } from '../types/transformers.js';
import { type WhookRoutesDefinitionsService } from './ROUTES_DEFINITIONS.js';
import { type WhookCommandsDefinitionsService } from './COMMANDS_DEFINITIONS.js';
import { type WhookCronsDefinitionsService } from './CRONS_DEFINITIONS.js';
import { type WhookConsumersDefinitionsService } from './CONSUMERS_DEFINITIONS.js';
import { type WhookTransformersDefinitionsService } from './TRANSFORMERS_DEFINITIONS.js';
import { type WhookOpenAPI } from '../types/openapi.js';
import { type WhookConsumerDefinition } from '../types/consumers.js';
export declare const DEFAULT_SECURITY_DEFINITIONS: WhookSecurityDefinitions;
export type WhookSecurityDefinitions = {
securitySchemes: NonNullable<NonNullable<WhookOpenAPI['components']>['securitySchemes']>;
security: NonNullable<WhookOpenAPI['security']>;
};
export type WhookDefinitionsConfig = {
WHOOK_PLUGINS?: WhookPluginName[];
};
export type WhookDefinitionsDependencies = WhookDefinitionsConfig & {
ROUTES_DEFINITIONS: WhookRoutesDefinitionsService;
COMMANDS_DEFINITIONS: WhookCommandsDefinitionsService;
CRONS_DEFINITIONS: WhookCronsDefinitionsService;
CONSUMERS_DEFINITIONS: WhookConsumersDefinitionsService;
TRANSFORMERS_DEFINITIONS: WhookTransformersDefinitionsService;
SECURITY_DEFINITIONS?: WhookSecurityDefinitions;
log?: LogService;
};
export type WhookDefinitions = {
paths: OpenAPIPaths<ExpressiveJSONSchema, OpenAPIExtension>;
components: OpenAPIComponents<ExpressiveJSONSchema, OpenAPIExtension>;
security: NonNullable<WhookOpenAPI['security']>;
configs: Record<string, ({
type: 'command';
} & WhookCommandDefinition) | ({
type: 'route';
} & WhookRouteDefinition) | (WhookCronDefinition & {
type: 'cron';
}) | (WhookConsumerDefinition & {
type: 'consumer';
}) | (WhookTransformerDefinition & {
type: 'transformer';
})>;
};
declare const _default: import("knifecycle").ServiceInitializer<WhookDefinitionsDependencies, WhookDefinitions>;
export default _default;
export declare function combineComponents({ log }: {
log: LogService;
}, type: WhookRouteAsideComponentSuffix, modules: {
file: string;
module: WhookRouteModule;
}[]): {};