UNPKG

@atomist/sdm-pack-aspect

Version:

an Atomist SDM Extension Pack for visualizing drift across an organization

83 lines 3.32 kB
"use strict"; /* * Copyright © 2019 Atomist, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const automation_client_1 = require("@atomist/automation-client"); function existingRecordShouldBeKept(opts, repoId) { return __awaiter(this, void 0, void 0, function* () { const found = yield opts.persister.loadByRepoRef(repoId, false); if (!found) { return false; } return opts.keepExistingPersisted(found); }); } exports.existingRecordShouldBeKept = existingRecordShouldBeKept; /** * Find project or subprojects */ function analyze(project, analyzer, criteria) { return __awaiter(this, void 0, void 0, function* () { return { projectsDetected: 1, repoInfos: [yield analyzeProject(project, analyzer)] }; }); } exports.analyze = analyze; /** * Analyze a project. */ function analyzeProject(project, analyzer) { return __awaiter(this, void 0, void 0, function* () { const analysis = yield analyzer.analyze(project); return { analysis, }; }); } function persistRepoInfo(opts, repoInfo, moreInfo) { return __awaiter(this, void 0, void 0, function* () { // Use a spread as url has a getter and otherwise disappears const repoRef = Object.assign({}, repoInfo.analysis.id, { url: moreInfo.url }); const toPersist = { workspaceId: opts.workspaceId, repoRef, analysis: Object.assign({}, repoInfo.analysis, { id: repoRef }), topics: [], sourceData: moreInfo.sourceData, timestamp: moreInfo.timestamp, query: moreInfo.query, }; const persistResult = yield opts.persister.persist(toPersist); if (opts.onPersisted) { try { yield opts.onPersisted(toPersist); } catch (err) { automation_client_1.logger.warn("Failed to action after persist repo %j: %s", toPersist.analysis.id, err.message); } } return persistResult; }); } exports.persistRepoInfo = persistRepoInfo; //# sourceMappingURL=common.js.map