ts-valid8
Version:
A next-generation TypeScript validation library with advanced features
45 lines • 1.54 kB
TypeScript
/**
* Plugin System for Valid8
*
* This system allows for extending the library's functionality through plugins
* that can add new validator types or enhance existing ones.
*/
import { Schema } from '../core/types';
export type PluginDefinition = {
name: string;
version: string;
install: (api: PluginAPI) => void;
};
export type PluginAPI = {
extend: (schemaType: string, methodName: string, method: Function) => void;
registerSchema: <T>(schemaType: string, schemaConstructor: new (...args: any[]) => Schema<T>) => void;
registerValidator: (name: string, validatorFn: Function) => void;
};
/**
* Plugin Manager for registering and managing plugins
*/
export declare class PluginManager {
private plugins;
private extensions;
private schemas;
private validators;
/**
* Register a plugin with the validation library
*/
use(plugin: PluginDefinition): void;
/**
* Get an extension method for a specific schema type
*/
getExtension(schemaType: string, methodName: string): Function | undefined;
/**
* Get a registered schema constructor
*/
getSchema(schemaType: string): (new (...args: any[]) => Schema<any>) | undefined;
/**
* Get a registered validator function
*/
getValidator(name: string): Function | undefined;
}
export declare const pluginManager: PluginManager;
export declare function createPlugin(name: string, version: string, installFn: (api: PluginAPI) => void): PluginDefinition;
//# sourceMappingURL=index.d.ts.map