@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
64 lines • 2.12 kB
TypeScript
import { Goal, GoalDefinition } from "./Goal";
/**
* Represents goals set in response to a push
*/
export declare class Goals {
name: string;
readonly goals: Goal[];
/**
* Return a Goal set that contains these goals and one more goal,
* with an appropriate name
* @param {Goal} g goal to add
* @return {Goals}
*/
and(g: Goal): Goals;
/**
* Return a form of these goals that is locked, so that more goals cannot be
* added through contribution model
* @return {Goals}
*/
andLock(): Goals;
constructor(name: string, ...goals: Goal[]);
}
export declare function isGoals(a: any): a is Goals;
/**
* Builder to build Goals instances.
*/
export interface GoalsBuilder {
/**
* Plan the given goal or goals to this Goals instance.
* @param {GoalDefinition | Goal | Goals} goals
* @returns {Goals & GoalsAndPreConditionBuilder}
*/
plan(...goals: Array<GoalDefinition | Goal | Goals>): Goals & GoalsAndPreConditionBuilder;
}
/**
* Extension to GoalsBuilder allowing to add preConditions.
*/
export interface GoalsAndPreConditionBuilder extends GoalsBuilder {
/**
* Add preCondition(s) to previously planned goal or goals.
* Note:
* This only will affect the goal or goals that were planned immediately
* before calling `after`.
* Only call this once; an additional call will remove other preconditions
* that may have existed on the original goal.
* @param {Goal} goals
* @returns {Goals & GoalsBuilder}
*/
after(...goals: Array<Goals | GoalDefinition | Goal>): Goals & GoalsBuilder;
}
/**
* Create Goals instance using a fluent API.
*
* const simpleGoals = goals("Simple Goals")
* .plan(CodeInspectionGoal)
* .plan(BuildGoal, Autofix).after(CodeInspectionGoal)
* .plan(StagingEndpointGoal).after(BuildGoal)
* .plan(ProductionDeploymentGoal).after(BuildGoal, StagingEndpointGoal);
*
* @param {string} name
* @returns {Goals & GoalsBuilder}
*/
export declare function goals(name: string): Goals & GoalsBuilder;
//# sourceMappingURL=Goals.d.ts.map