@composable-svelte/code
Version:
Code editor, syntax highlighting, and node-based canvas components for Composable Svelte - Built with Prism.js, CodeMirror, and SvelteFlow
31 lines • 1.56 kB
TypeScript
/**
* Connection Validation Utilities
*
* Type-safe connection validation for node-based editors.
* Validates connections based on port types, multiplicity, and custom rules.
*/
import type { NodeCanvasState, ConnectionValidation, NodeTypeDefinition } from './types.js';
/**
* Default connection validator with type-safe port validation.
*
* Validates:
* - Nodes exist
* - No self-connections
* - Port types are compatible
* - Port multiplicity (single vs multiple connections)
* - Custom node-level validation
*/
export declare function createConnectionValidator(nodeTypes: Record<string, NodeTypeDefinition>): (state: NodeCanvasState<any, any>, sourceNodeId: string, sourceHandle: string | null, targetNodeId: string, targetHandle: string | null) => ConnectionValidation;
/**
* Helper to create permissive validator (allows all connections).
*/
export declare function permissiveValidator(): ConnectionValidation;
/**
* Helper to create strict validator (blocks all connections).
*/
export declare function strictValidator(error?: string): ConnectionValidation;
/**
* Compose multiple validators (all must pass).
*/
export declare function composeValidators(...validators: ((state: NodeCanvasState<any, any>, sourceNodeId: string, sourceHandle: string | null, targetNodeId: string, targetHandle: string | null) => ConnectionValidation)[]): (state: NodeCanvasState<any, any>, sourceNodeId: string, sourceHandle: string | null, targetNodeId: string, targetHandle: string | null) => ConnectionValidation;
//# sourceMappingURL=validation.d.ts.map