@atomist/sdm-core
Version:
Atomist Software Delivery Machine - Implementation
33 lines • 1.65 kB
TypeScript
import { Project } from "@atomist/automation-client";
import { CodeTransform, ExtensionPack, GeneratorRegistration, ParametersObject } from "@atomist/sdm";
/**
* Registration for CodeTransform, ParametersObject and an additional test
*/
export interface UniversalTransform<PARAMS = any> {
/** Return true if provided CodeTransforms should be executed against Project p */
test?: (p: Project) => Promise<boolean>;
/** CodeTransforms to execute */
transforms: CodeTransform<PARAMS> | Array<CodeTransform<PARAMS>>;
/** Additional parameters the CodeTransforms need */
parameters?: ParametersObject<PARAMS>;
}
/**
* Configuration options for the universalGeneratorSupport extension pack
*/
export interface UniversalGeneratorSupportOptions {
/** Generators to enrich with additional CodeTransforms */
generators: GeneratorRegistration<any> | Array<GeneratorRegistration<any>>;
/** Additional CodeTransforms, their parameters and optional project test */
transformsAndParameters?: UniversalTransform<any> | Array<UniversalTransform<any>>;
}
/**
* Configure generators in the form GeneratorRegistrations to run additional CodeTransforms
*
* The CodeTransforms are getting registered with an optional test which can be used to
* interrogate the seed project and determine if the CodeTransform should be executed
* against the seed.
* CodeTransforms can also register parameter definitions to ask for more parameters via a
* promptFor question flow.
*/
export declare function universalGeneratorSupport(options: UniversalGeneratorSupportOptions): ExtensionPack;
//# sourceMappingURL=generatorSupport.d.ts.map