UNPKG

2.08 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const onCommand_1 = require("../../onCommand");
4const repoFilter_1 = require("../common/repoFilter");
5const editAll_1 = require("./editAll");
6const editModes_1 = require("./editModes");
7function defaultDetails(name) {
8 return {
9 description: name,
10 editMode: new editModes_1.PullRequest(name, name),
11 };
12}
13/**
14 * Create a handle function that edits one or many repos, following AllReposByDefaultParameters
15 * @param pe function returning a project editor instance appropriate for the parameters
16 * @param {string} name
17 * @param {string} details object allowing customization beyond reasonable defaults
18 * @return {HandleCommand}
19 */
20function editorHandler(pe, factory, name, details = {}) {
21 const detailsToUse = Object.assign({}, defaultDetails(name), details);
22 return onCommand_1.commandHandlerFrom(handleEditOneOrMany(pe, detailsToUse), factory, name, detailsToUse.description, detailsToUse.intent, detailsToUse.tags);
23}
24exports.editorHandler = editorHandler;
25/**
26 * If owner and repo are required, edit just one repo. Otherwise edit all repos
27 * in the present team
28 */
29function handleEditOneOrMany(pe, details) {
30 return (ctx, parameters) => {
31 const credentials = parameters.targets.credentials;
32 if (!!parameters.targets.repoRef) {
33 return editAll_1.editOne(ctx, credentials, pe(parameters), editModeFor(details.editMode, parameters), parameters.targets.repoRef, parameters, !!details.repoLoader ? details.repoLoader(parameters) : undefined);
34 }
35 return editAll_1.editAll(ctx, credentials, pe(parameters), editModeFor(details.editMode, parameters), parameters, details.repoFinder, repoFilter_1.andFilter(parameters.targets.test, details.repoFilter), !!details.repoLoader ? details.repoLoader(parameters) : undefined);
36 };
37}
38exports.handleEditOneOrMany = handleEditOneOrMany;
39function editModeFor(emf, p) {
40 return editModes_1.isEditMode(emf) ?
41 emf :
42 emf(p);
43}
44//# sourceMappingURL=editorToCommand.js.map
\No newline at end of file