UNPKG

@atomist/sdm

Version:

Atomist Software Delivery Machine SDK

47 lines 1.51 kB
import { Mapping } from "./Mapping"; /** * Style of logical composition */ export declare enum PredicateMappingCompositionStyle { And = "and", Or = "or", Not = "not" } /** * Mapping to a boolean */ export interface PredicateMapping<F> extends Mapping<F, boolean> { /** * If this predicate has internal structure, * the components and how they are applied. * For internal and tooling use. */ readonly structure?: { components: Array<PredicateMapping<F>>; readonly compositionStyle: PredicateMappingCompositionStyle; }; } /** * Implemented by types whose behavior is potentially explicable by a single PredicateMapping */ export interface Predicated<F> { /** * The test for the contribution. Contributions may be * applied in various ways. */ test?: PredicateMapping<F>; } /** * Function that can visit a PredicateMappings. * @return whether to visit the mapping's subcomponents, if any */ export declare type PredicateMappingVisitor<F> = (pm: PredicateMapping<F>) => boolean; /** * Visit the PredicateMappings, returning whether to continue * @param pm predicate mapping to visit. Always visits root, * and any subcomponents as long as the visitor returns true * @param v visitor * @return {boolean} whether to visit the mapping's structure, if any */ export declare function visitPredicateMappings<F>(pm: PredicateMapping<F>, v: PredicateMappingVisitor<F>): void; //# sourceMappingURL=PredicateMapping.d.ts.map