UNPKG

@atomist/sdm-pack-fingerprints

Version:

an Atomist SDM Extension Pack for fingerprinting code

62 lines (61 loc) 1.88 kB
import { Project } from "@atomist/automation-client"; /** * Virtual project status of a repository */ export declare enum VirtualProjectStatus { /** * This is definitely not a project with virtual subprojects. We only care about the root. */ RootOnly = "RootOnly", /** * This is definitely a project with virtual subprojects whose path we've identified */ IdentifiedPaths = "IdentifiedPaths", /** * The virtual project status of this repo cannot be determined */ Unknown = "Unknown" } /** * Virtual project we've found in a project */ export interface VirtualProject { /** * Path within the root */ path: string; /** * Reason for determining that this is a subproject */ reason: string; } export interface VirtualProjectsInfo { readonly status: VirtualProjectStatus.IdentifiedPaths; readonly virtualProjects: VirtualProject[]; } export interface NoVirtualProjectsInfo { readonly status: VirtualProjectStatus.RootOnly | VirtualProjectStatus.Unknown; } /** * Constant for a project with no virtual projects: * Only the root matters. * @type {{status: VirtualProjectStatus.RootOnly}} */ export declare const RootIsOnlyProject: NoVirtualProjectsInfo; export declare type VirtualProjectInfo = VirtualProjectsInfo | NoVirtualProjectsInfo; /** * Did we find multiple virtual projects? */ export declare function isVirtualProjectsInfo(vpi: VirtualProjectInfo): vpi is VirtualProjectsInfo; /** * Extended by types that can identify virtual projects under a base project */ export interface VirtualProjectFinder { readonly name: string; /** * Determine virtual project information for this project * @param {Project} project * @return {Promise<VirtualProjectInfo>} */ findVirtualProjectInfo: (project: Project) => Promise<VirtualProjectInfo>; }