UNPKG

1.75 kBTypeScriptView Raw
1import { ActionResult } from "../../action/ActionResult";
2import { HandleCommand } from "../../HandleCommand";
3import { HandlerContext } from "../../HandlerContext";
4import { Maker } from "../../util/constructionUtils";
5import { CommandDetails } from "../CommandDetails";
6import { EditorOrReviewerParameters } from "../common/params/BaseEditorOrReviewerParameters";
7import { RepoFilter } from "../common/repoFilter";
8import { RepoRef } from "../common/RepoId";
9import { ProjectReviewer } from "./projectReviewer";
10import { ProjectReview } from "./ReviewResult";
11/**
12 * Function signature to route ProjectReviews, for example to GitHub issues or MessageClient
13 */
14export declare type ReviewRouter<PARAMS> = (pr: ProjectReview, params: PARAMS, title: string, ctx: HandlerContext) => Promise<ActionResult<RepoRef>>;
15/**
16 * Further details of an editor to allow selective customization
17 */
18export interface ReviewerCommandDetails<PARAMS extends EditorOrReviewerParameters> extends CommandDetails<PARAMS> {
19 repoFilter?: RepoFilter;
20 reviewRouter: ReviewRouter<PARAMS>;
21}
22/**
23 * Create a handle function that reviews one or many repos, following AllReposByDefaultParameters
24 * @param reviewerFactory function returning a reviewer instance for the appropriate parameters
25 * @param factory construction function
26 * @param {string} name
27 * @param {string} details object allowing customization beyond reasonable defaults
28 * @return {HandleCommand}
29 */
30export declare function reviewerHandler<PARAMS extends EditorOrReviewerParameters>(reviewerFactory: (params: PARAMS) => ProjectReviewer<PARAMS>, factory: Maker<PARAMS>, name: string, details?: Partial<ReviewerCommandDetails<PARAMS>>): HandleCommand;
31//# sourceMappingURL=reviewerToCommand.d.ts.map
\No newline at end of file