@altostra/core
Version:
Core library for shared types and logic
25 lines (24 loc) • 1.02 kB
TypeScript
import type { FilesSource } from "../../blueprint/Resources/FileStore";
import type { Maybe } from "../../common/Maybe";
export interface FilesSourceValidationBase {
isValid: boolean;
validFiles: string[];
}
export interface ValidFilesSourceValidation extends FilesSourceValidationBase {
isValid: true;
}
export interface InvalidFilesSourceValidation extends FilesSourceValidationBase {
isValid: false;
invalidFiles: InvalidPath[];
}
export declare type FilesSourceValidation = InvalidFilesSourceValidation | ValidFilesSourceValidation;
export interface InvalidPath {
path: string;
reason: string;
}
export interface ValidationContext {
projectDir: string;
checkExistence?: true;
}
export declare type FilesSourceValidator<TFilesSource extends FilesSource> = (source: TFilesSource, context: ValidationContext) => Promise<FilesSourceValidation>;
export declare function existenceValidation(path: string, checkExistence: Maybe<boolean>): Promise<Maybe<InvalidFilesSourceValidation>>;