@atomist/sdm-pack-fingerprints
Version:
an Atomist SDM Extension Pack for fingerprinting code
24 lines (23 loc) • 1.26 kB
TypeScript
import { Aspect, BaseAspect, FingerprintSelector, FP } from "./Aspect";
/**
* Aspect derived from existing fingerprints.
* Surfaces as a single fingerprint. Implementations must
* also support atomic application.
*/
export interface AtomicAspect<FPI extends FP = FP> extends BaseAspect<FPI> {
/**
* Function to extract fingerprint(s) from this project
*/
consolidate: (fps: FP[]) => Promise<FPI>;
}
export declare function isAtomicAspect(aspect: BaseAspect): aspect is AtomicAspect;
/**
* Create a composite aspect from the given other aspects or extractors.
* Will use a single fingerprint that is made of many others. Ordering is significant:
* atomic aspects can only be computed after normal fingerprints have been calculated.
* @param aspectData identifying data of new composite fingerprint
* @param narrower function to select fingerprints from the various aspects that we are interested in
* @param aspect0 first aspect to combine
* @param aspects other aspects
*/
export declare function atomicAspect(aspectData: Pick<Aspect, "displayName" | "summary" | "comparators" | "toDisplayableFingerprint" | "toDisplayableFingerprintName" | "name">, narrower: FingerprintSelector, aspect0: Aspect, ...aspects: Aspect[]): AtomicAspect;