@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
22 lines • 877 B
TypeScript
import { GitProject } from "@atomist/automation-client/lib/project/git/GitProject";
import { ProjectLoader, ProjectLoadingParameters } from "./ProjectLoader";
export declare type WithLoadedLazyProject<T = any> = (p: GitProject & LazyProject) => Promise<T>;
/**
* Marker interface to declare a ProjectLoader to lazily load projects
*/
export interface LazyProjectLoader extends ProjectLoader {
/**
* This project loader is always lazy
*/
isLazy: true;
/**
* Perform an action with the given project
*/
doWithProject<T>(params: ProjectLoadingParameters, action: WithLoadedLazyProject<T>): Promise<T>;
}
export interface LazyProject {
materialized(): boolean;
materialize(): Promise<GitProject>;
}
export declare function isLazyProjectLoader(pl: ProjectLoader): pl is LazyProjectLoader;
//# sourceMappingURL=LazyProjectLoader.d.ts.map