UNPKG

@atomist/sdm-pack-fingerprints

Version:

an Atomist SDM Extension Pack for fingerprinting code

77 lines 3.19 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"); const clj_editors_1 = require("@atomist/clj-editors"); const _ = require("lodash"); exports.backpackFingerprint = (p) => __awaiter(this, void 0, void 0, function* () { const file = yield p.getFile("package.json"); if (file) { const packagejson = JSON.parse(yield file.getContent()); // tslint:disable-next-line:no-string-literal const data = _.get(packagejson, "backpack-react-scripts.externals", ""); const fp = { name: exports.Backpack.name, abbreviation: "backpack", version: "0.0.1", data, sha: clj_editors_1.sha256(JSON.stringify(data)), }; // bug opened and fix coming fp.value = data; return fp; } else { return undefined; } }); exports.applyBackpackFingerprint = (p, fp) => __awaiter(this, void 0, void 0, function* () { automation_client_1.logger.info(`Apply ${clj_editors_1.renderData(fp)} to project at ${p.id.url}`); try { if (yield p.hasFile("package.json")) { const file = yield p.getFile("package.json"); const packagejson = JSON.parse(yield file.getContent()); // tslint:disable-next-line:no-string-literal packagejson["backpack-react-scripts"]["externals"] = fp.data; yield file.setContent(JSON.stringify(packagejson, undefined, 2)); return true; } else { return false; } } catch (error) { automation_client_1.logger.error(`caught error ${error}`); return false; } }); exports.Backpack = { displayName: "Backpack", name: "backpack-react-scripts", extract: exports.backpackFingerprint, apply: exports.applyBackpackFingerprint, toDisplayableFingerprint: fp => fp.name, }; //# sourceMappingURL=backpack.js.map