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