UNPKG

@grept/node-plugin

Version:

Plugin for @grt/core. Help to manage nodejs versions of your repos

93 lines 4.5 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; 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 inversify_1 = require("inversify"); const common_1 = require("@grept/common"); const octokit_1 = require("@grept/octokit"); const constants_1 = require("./constants"); const node_version_options_validator_1 = require("./node.version.options.validator"); let NodeVersionPlugin = class NodeVersionPlugin extends common_1.BasePlugin { applyDefaults(options = {}) { return Object.assign({}, common_1.DEFAULT, constants_1.DEFAULT, options); } validate(options) { this.optionsValidator.validate(options); } perform(options) { return __awaiter(this, void 0, void 0, function* () { console.log('Options: ', options); const { org, user, nvm, engines, token } = options; const repos = yield this.octokitService.getRepos({ org, user, token }); if (!repos) { return null; } const result = yield Promise.all(repos.map((repo) => __awaiter(this, void 0, void 0, function* () { try { const [nvmVersion, enginesVersion] = yield Promise.all([ nvm ? this.getNvmrc(org || user, repo, token).catch(() => null) : null, engines ? this.getEngines(org || user, repo, token).catch(() => null) : null ]); const data = { repo }; if (nvm) { data.nvmVersion = nvmVersion; } if (engines) { data.enginesVersion = enginesVersion; } return data; } catch (e) { return { repo, error: e.code }; } }))); return result; }); } getNvmrc(owner, repo, token) { return __awaiter(this, void 0, void 0, function* () { const content = yield this.octokitService.getFileContent(owner, repo, '.nvmrc', token); return content.trim(); }); } getEngines(owner, repo, token) { return __awaiter(this, void 0, void 0, function* () { const packageJson = yield this.octokitService.getPackageJson(owner, repo, token); const engines = packageJson.engines; if (!engines || !engines.node) { return null; } return engines.npm ? `${engines.node} (npm: ${engines.npm})` : `${engines.node}`; }); } }; __decorate([ inversify_1.inject('octokit'), __metadata("design:type", octokit_1.OctokitService) ], NodeVersionPlugin.prototype, "octokitService", void 0); __decorate([ inversify_1.inject(node_version_options_validator_1.NodeVersionOptionsValidator), __metadata("design:type", Object) ], NodeVersionPlugin.prototype, "optionsValidator", void 0); NodeVersionPlugin = __decorate([ inversify_1.injectable() ], NodeVersionPlugin); exports.NodeVersionPlugin = NodeVersionPlugin; //# sourceMappingURL=node.version.plugin.js.map