zon-format
Version:
ZON: The most token-efficient serialization format for LLMs - beats CSV, TOON, JSON, and all competitors
65 lines (64 loc) • 1.68 kB
TypeScript
/**
* Enhanced Validator & Linter
*
* Validate ZON data and provide best practice recommendations
*/
import type { ZonSchema } from '../schema/schema';
export interface ValidationResult {
valid: boolean;
errors: ValidationError[];
warnings: ValidationWarning[];
suggestions: string[];
}
export interface ValidationError {
path: string;
message: string;
severity: 'error';
}
export interface ValidationWarning {
path: string;
message: string;
severity: 'warning';
rule: string;
}
export interface LintOptions {
/** Maximum allowed nesting depth */
maxDepth?: number;
/** Maximum allowed field count */
maxFields?: number;
/** Warn on irregular schemas */
checkIrregularity?: boolean;
/** Check for performance issues */
checkPerformance?: boolean;
/** Validate against schema if provided */
schema?: ZonSchema;
}
/**
* Enhanced validator with linting
*/
export declare class ZonValidator {
/**
* Validate ZON string and provide detailed feedback
*/
validate(zon: string, options?: LintOptions): ValidationResult;
/**
* Quick validation without detailed linting
*/
isValid(zon: string): boolean;
/**
* Get best practice recommendations
*/
lint(zon: string, options?: LintOptions): ValidationWarning[];
}
/**
* Global validator instance
*/
export declare const validator: ZonValidator;
/**
* Quick validation function
*/
export declare function validateZon(zon: string, schema?: ZonSchema): ValidationResult;
/**
* Lint ZON for best practices
*/
export declare function lintZon(zon: string, options?: LintOptions): ValidationWarning[];