UNPKG

@atomist/automation-client

Version:
44 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const onCommand_1 = require("../../onCommand"); const repoFilter_1 = require("../common/repoFilter"); const editAll_1 = require("./editAll"); const editModes_1 = require("./editModes"); function defaultDetails(name) { return { description: name, editMode: new editModes_1.PullRequest(name, name), }; } /** * Create a handle function that edits one or many repos, following AllReposByDefaultParameters * @param pe function returning a project editor instance appropriate for the parameters * @param {string} name * @param {string} details object allowing customization beyond reasonable defaults * @return {HandleCommand} */ function editorHandler(pe, factory, name, details = {}) { const detailsToUse = Object.assign({}, defaultDetails(name), details); return onCommand_1.commandHandlerFrom(handleEditOneOrMany(pe, detailsToUse), factory, name, detailsToUse.description, detailsToUse.intent, detailsToUse.tags); } exports.editorHandler = editorHandler; /** * If owner and repo are required, edit just one repo. Otherwise edit all repos * in the present team */ function handleEditOneOrMany(pe, details) { return (ctx, parameters) => { const credentials = parameters.targets.credentials; if (!!parameters.targets.repoRef) { return editAll_1.editOne(ctx, credentials, pe(parameters), editModeFor(details.editMode, parameters), parameters.targets.repoRef, parameters, !!details.repoLoader ? details.repoLoader(parameters) : undefined); } 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); }; } exports.handleEditOneOrMany = handleEditOneOrMany; function editModeFor(emf, p) { return editModes_1.isEditMode(emf) ? emf : emf(p); } //# sourceMappingURL=editorToCommand.js.map