UNPKG

3.44 kBTypeScriptView Raw
1import { HandleCommand } from "@atomist/automation-client/lib/HandleCommand";
2import { HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
3import { CommandDetails } from "@atomist/automation-client/lib/operations/CommandDetails";
4import { ProjectAction } from "@atomist/automation-client/lib/operations/common/projectAction";
5import { RepoRef } from "@atomist/automation-client/lib/operations/common/RepoId";
6import { RepoLoader } from "@atomist/automation-client/lib/operations/common/repoLoader";
7import { AnyProjectEditor } from "@atomist/automation-client/lib/operations/edit/projectEditor";
8import { ProjectPersister } from "@atomist/automation-client/lib/operations/generate/generatorUtils";
9import { RepoCreationParameters } from "@atomist/automation-client/lib/operations/generate/RepoCreationParameters";
10import { SeedDrivenGeneratorParameters } from "@atomist/automation-client/lib/operations/generate/SeedDrivenGeneratorParameters";
11import { Project } from "@atomist/automation-client/lib/project/Project";
12import { Maker } from "@atomist/automation-client/lib/util/constructionUtils";
13import { SoftwareDeliveryMachineOptions } from "../../../api/machine/SoftwareDeliveryMachineOptions";
14import { CommandRegistration } from "../../../api/registration/CommandRegistration";
15import { GeneratorRegistration, StartingPoint } from "../../../api/registration/GeneratorRegistration";
16import { MachineOrMachineOptions } from "../../machine/toMachineOptions";
17/**
18 * Create a command handler for project generation
19 * @param sdm this machine or its options
20 * @param {EditorFactory<P extends SeedDrivenGeneratorParameters>} editorFactory to create editorCommand to perform transformation
21 * @param {Maker<P extends SeedDrivenGeneratorParameters>} paramsMaker
22 * @param {string} name
23 * @param {Partial<GeneratorCommandDetails<P extends SeedDrivenGeneratorParameters>>} details
24 * @return {HandleCommand}
25 */
26export declare function generatorCommand<P>(sdm: MachineOrMachineOptions, editorFactory: EditorFactory<P>, name: string, paramsMaker: Maker<P>, fallbackTarget: Maker<RepoCreationParameters>, startingPoint: StartingPoint<P>, details: Partial<GeneratorCommandDetails<any>>, cr: GeneratorRegistration<P>): HandleCommand;
27export declare type EditorFactory<P> = (params: P, ctx: HandlerContext) => AnyProjectEditor<P>;
28interface GeneratorCommandDetails<P extends SeedDrivenGeneratorParameters> extends CommandDetails {
29 redirecter: (r: RepoRef) => string;
30 projectPersister?: ProjectPersister;
31 afterAction?: ProjectAction<P>;
32}
33/**
34 * Return a parameters maker that is targeting aware
35 * @param {Maker<PARAMS>} paramsMaker
36 * @return {Maker<EditorOrReviewerParameters & PARAMS>}
37 */
38export declare function toGeneratorParametersMaker<PARAMS>(paramsMaker: Maker<PARAMS>, target: RepoCreationParameters): Maker<SeedDrivenGeneratorParameters & PARAMS>;
39export declare function isSeedDrivenGeneratorParameters(p: any): p is SeedDrivenGeneratorParameters;
40/**
41 * Retrieve a seed. Set the seed location on the parameters if possible and necessary.
42 */
43export declare function computeStartingPoint<P extends SeedDrivenGeneratorParameters>(params: P, ctx: HandlerContext, repoLoader: RepoLoader, details: GeneratorCommandDetails<any>, startingPoint: StartingPoint<P>, cr: CommandRegistration<P>, sdmo: SoftwareDeliveryMachineOptions): Promise<Project>;
44export {};
45//# sourceMappingURL=generatorCommand.d.ts.map
\No newline at end of file