UNPKG

@whook/whook

Version:

Build strong and efficient REST web services.

57 lines (56 loc) 3.62 kB
import { type WhookHTTPRouterConfig } from '../services/httpRouter.js'; import { type WhookHTTPServerConfig, type WhookHTTPServerEnv } from '../services/httpServer.js'; import { type WhookBaseURLConfig, type WhookBaseURLEnv } from '../services/BASE_URL.js'; import { type WhookPortEnv } from '../services/PORT.js'; import { type WhookObfuscatorConfig } from '../services/obfuscator.js'; import { type WhookHTTPTransactionConfig } from '../services/httpTransaction.js'; import { type WhookHostEnv } from '../services/HOST.js'; import { type WhookDefinitionsConfig } from '../services/DEFINITIONS.js'; import { type WhookResolvedPluginsConfig } from '../services/WHOOK_RESOLVED_PLUGINS.js'; import { type WhookRoutesWrappersConfig } from '../services/ROUTES_WRAPPERS.js'; import { type ProcessEnvConfig, type ProcessServiceConfig } from 'application-services'; import { type WhookErrorHandlerConfig } from '../services/errorHandler.js'; import { type WhookSchemaValidatorsConfig } from '../services/schemaValidators.js'; import { type WhookQueryParserBuilderConfig } from '../services/queryParserBuilder.js'; import { type WhookCommandEnv } from '../services/command.js'; import { type WhookAPICallbackDefinition, type WhookAPIHeaderDefinition, type WhookAPIParameterDefinition, type WhookAPIRequestBodyDefinition, type WhookAPIResponseDefinition, type WhookAPISchemaDefinition } from './openapi.js'; import { type LogService } from 'common-services'; import { type ExpressiveJSONSchema } from 'ya-json-schema-types'; import { type OpenAPIComponents, type OpenAPIExtension } from 'ya-open-api-types'; export type WhookAppEnv<T extends string> = T; export interface WhookBaseMain { AppEnv: WhookAppEnv<string>; } export interface WhookMain extends WhookBaseMain { } export type WhookBaseEnv = WhookCommandEnv & WhookHTTPServerEnv & WhookBaseURLEnv & WhookHostEnv & WhookPortEnv & { APP_ENV?: WhookBaseMain['AppEnv']; }; export type WhookBaseConfigs = ProcessServiceConfig & ProcessEnvConfig & ProcessServiceConfig & WhookHTTPRouterConfig & WhookQueryParserBuilderConfig & WhookErrorHandlerConfig & WhookHTTPServerConfig & WhookHTTPTransactionConfig & WhookBaseURLConfig & WhookResolvedPluginsConfig & WhookObfuscatorConfig & WhookDefinitionsConfig & WhookRoutesWrappersConfig & WhookSchemaValidatorsConfig; export declare const ASIDE_COMPONENTS_SUFFIXES: { readonly schemas: "Schema"; readonly parameters: "Parameter"; readonly headers: "Header"; readonly requestBodies: "RequestBody"; readonly responses: "Response"; readonly callbacks: "Callback"; }; export declare const ASIDE_COMPONENTS_PROPERTIES: { readonly schemas: "schema"; readonly parameters: "parameter"; readonly headers: "header"; readonly requestBodies: "requestBody"; readonly responses: "response"; readonly callbacks: "callback"; }; export type WhookModuleAsideSchemas = Record<`${string}Schema`, WhookAPISchemaDefinition<unknown>>; export interface WhookModuleAsideComponents { [name: `${string}Parameter`]: WhookAPIParameterDefinition<unknown>; [name: `${string}Header`]: WhookAPIHeaderDefinition; [name: `${string}Response`]: WhookAPIResponseDefinition; [name: `${string}RequestBody`]: WhookAPIRequestBodyDefinition; [name: `${string}Callback`]: WhookAPICallbackDefinition; } export declare function combineComponents({ log }: { log: LogService; }, modules: (WhookModuleAsideSchemas & WhookModuleAsideComponents)[]): Pick<Required<OpenAPIComponents<ExpressiveJSONSchema, OpenAPIExtension>>, "parameters" | "schemas" | "responses" | "requestBodies" | "headers" | "callbacks">;