@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
36 lines • 1.93 kB
TypeScript
import { Project } from "@atomist/automation-client/lib/project/Project";
import { ExtensionPack } from "../../api/machine/ExtensionPack";
import { CodeTransform } from "../../api/registration/CodeTransform";
import { GeneratorRegistration } from "../../api/registration/GeneratorRegistration";
import { ParametersObject } from "../../api/registration/ParametersDefinition";
/**
* 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?: ((params: any) => Promise<ParametersObject<PARAMS>>) | 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