@atomist/automation-client
Version:
Atomist API for software low-level client
52 lines • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const defaultRepoLoader_1 = require("../common/defaultRepoLoader");
const repoFilter_1 = require("../common/repoFilter");
const repoUtils_1 = require("../common/repoUtils");
const editorUtils_1 = require("../support/editorUtils");
const editModes_1 = require("./editModes");
const projectEditor_1 = require("./projectEditor");
/**
* Edit all the given repos with the given editor
* @param {HandlerContext} ctx
* @param credentials credentials
* @param {ProjectEditor} editor
* @param editInfo: EditMode determines how the edits should be applied.
* Factory allows us to use different branches if necessary
* @param parameters parameters (optional)
* @param {RepoFinder} repoFinder
* @param {} repoFilter
* @param {RepoLoader} repoLoader
* @return {Promise<Array<EditResult>>}
*/
function editAll(ctx, credentials, editor, editInfo, parameters, repoFinder, repoFilter = repoFilter_1.AllRepos, repoLoader = defaultRepoLoader_1.defaultRepoLoader(credentials)) {
const edit = (p, parms) => editorUtils_1.editRepo(ctx, p, projectEditor_1.toEditor(editor), editModes_1.toEditModeFactory(editInfo)(p), parms)
.catch(err => {
return {
edited: false,
success: false,
target: p,
error: err,
};
});
return repoUtils_1.doWithAllRepos(ctx, credentials, edit, parameters, repoFinder, repoFilter, repoLoader);
}
exports.editAll = editAll;
/**
* Edit the given repo with the given editor function, which depends only on the project
* @param {HandlerContext} ctx
* @param credentials credentials
* @param {ProjectEditor} editor
* @param editInfo: EditMode determines how the edits should be applied.
* @param singleRepository reference to the single repo to edit
* @param parameters parameters (optional)
* @param {RepoLoader} repoLoader (optional, useful in testing)
* @return {Promise<EditResult>}
*/
function editOne(ctx, credentials, editor, editInfo, singleRepository, parameters, repoLoader = defaultRepoLoader_1.defaultRepoLoader(credentials)) {
const singleRepoFinder = () => Promise.resolve([singleRepository]);
return editAll(ctx, credentials, projectEditor_1.toEditor(editor), editInfo, parameters, singleRepoFinder, repoFilter_1.AllRepos, repoLoader)
.then(ers => ers[0]);
}
exports.editOne = editOne;
//# sourceMappingURL=editAll.js.map