UNPKG

@altostra/core

Version:

Core library for shared types and logic

25 lines (24 loc) 1.02 kB
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>>;