types/validation.types.ts

types/validation.types.ts is a file in GovLab Quality. 27 lines of code and 6 definitions.

import type { Finding } from "#types/finding.types";

export interface FileInput {
    path: string;
    content: string;
}

export interface ValidatorMeta {
    canonical: readonly string[];
    description: string;
}

export interface ProjectValidator {
    id: string;
    appliesTo: readonly string[] | "*";
    meta: ValidatorMeta;
    validate: (files: readonly FileInput[], consumers: readonly FileInput[]) => Finding[];
}

export type FileReader = (path: string) => string;

export interface ValidationInput {
    consumers: readonly string[];
    files: readonly string[];
    readFile: FileReader;
    validators: readonly ProjectValidator[];
}

export interface ValidationResult {
    clean: boolean;
    findings: Finding[];
    panel: string;
}