@whook/whook
Version:
Build strong and efficient REST web services.
37 lines (36 loc) • 1.81 kB
TypeScript
import { type ImporterService, type LogService } from 'common-services';
import { type WhookTransformerModule, type WhookTransformerDefinition } from '../types/transformers.js';
import { type WhookResolvedPluginsService, type WhookPluginName } from './WHOOK_RESOLVED_PLUGINS.js';
export declare const DEFAULT_TRANSFORMERS_DEFINITIONS_OPTIONS: WhookTransformerDefinitionsOptions;
export declare const DEFAULT_TRANSFORMER_DEFINITION_FILTER: WhookTransformerDefinitionFilter;
export interface WhookTransformerDefinitionFilter {
(definition: WhookTransformerDefinition): boolean;
}
export type WhookTransformerDefinitionsOptions = {
/** File patterns to ignore */
ignoredFilePatterns?: string[];
/** Pattern to match and pick the transformer name in the file name */
fileNamePatterns: [string, ...string[]];
/** Patterns that matches an transformer name */
serviceNamePatterns: [string, ...string[]];
};
export type WhookTransformersDefinitionsConfig = {
TRANSFORMERS_DEFINITIONS_OPTIONS?: WhookTransformerDefinitionsOptions;
TRANSFORMER_DEFINITION_FILTER?: WhookTransformerDefinitionFilter;
WHOOK_PLUGINS?: WhookPluginName[];
};
export type WhookTransformersDefinitionsDependencies = WhookTransformersDefinitionsConfig & {
APP_ENV: string;
WHOOK_RESOLVED_PLUGINS: WhookResolvedPluginsService;
log?: LogService;
importer: ImporterService<WhookTransformerModule>;
readDir?: (path: URL) => Promise<string[]>;
};
export type WhookTransformersDefinitionsService = Record<string, {
url: string;
name: string;
pluginName: WhookPluginName;
module: WhookTransformerModule;
}>;
declare const _default: import("knifecycle").ServiceInitializer<WhookTransformersDefinitionsDependencies, WhookTransformersDefinitionsService>;
export default _default;