UNPKG

@bconnorwhite/bob

Version:

Bob is a toolkit for TypeScript projects

137 lines (112 loc) 5.59 kB
"use strict"; exports.__esModule = true; exports.initGitHub = initGitHub; exports.initGitHubAction = initGitHubAction; exports["default"] = void 0; var _commanderVersion = require("commander-version"); var _inquirer = require("inquirer"); var _configstore = _interopRequireDefault(require("configstore")); var _rest = require("@octokit/rest"); var _isGitRepository = _interopRequireDefault(require("is-git-repository")); var _exec = require("@bconnorwhite/exec"); var _structure = require("../../../structure"); var _utils = require("../../../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function initGitHub(_x) { return _initGitHub.apply(this, arguments); } function _initGitHub() { _initGitHub = _asyncToGenerator(function* (args) { if (args === void 0) { args = {}; } if ((0, _isGitRepository["default"])()) { return (0, _structure.getPackageJSON)().read().then( /*#__PURE__*/function () { var _ref = _asyncToGenerator(function* (pkgJSON) { return (0, _utils.getModuleName)(args.configPackageName).then( /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(function* (moduleName) { var _pkgJSON$name$split, _pkgJSON$name, _split$reverse$, _config$get; var config = moduleName ? new _configstore["default"](moduleName) : undefined; var split = (_pkgJSON$name$split = pkgJSON == null ? void 0 : (_pkgJSON$name = pkgJSON.name) == null ? void 0 : _pkgJSON$name.split("/")) != null ? _pkgJSON$name$split : []; var name = split.reverse()[0]; var org = (_split$reverse$ = split.reverse()[1]) == null ? void 0 : _split$reverse$.replace("@", ""); return (0, _inquirer.prompt)([{ type: "input", name: "name", message: "GitHub repo name:", "default": name }, { type: "input", name: "githubUsername", message: "GitHub username:", "default": (_config$get = config == null ? void 0 : config.get("githubUsername")) != null ? _config$get : org }, { type: "input", name: "githubToken", message: "GitHub token:", "default": config == null ? void 0 : config.get("githubToken") }, { type: "confirm", name: "star", message: "Star for good luck?", "default": true }]).then( /*#__PURE__*/function () { var _ref3 = _asyncToGenerator(function* (answers) { config == null ? void 0 : config.set("githubUsername", answers.githubUsername); config == null ? void 0 : config.set("githubToken", answers.githubToken); var octokit = new _rest.Octokit({ auth: answers.githubToken }); return octokit.repos.createForAuthenticatedUser({ name: answers.name, description: pkgJSON == null ? void 0 : pkgJSON.description, homepage: pkgJSON == null ? void 0 : pkgJSON.homepage, "private": pkgJSON == null ? void 0 : pkgJSON["private"] }).then( /*#__PURE__*/function () { var _ref4 = _asyncToGenerator(function* (response) { if (answers.star) { yield octokit.activity.starRepoForAuthenticatedUser({ owner: response.data.owner.login, repo: response.data.name }); } return (0, _exec.exec)("git", ["remote", "add", "origin", response.data.ssh_url]); }); return function (_x5) { return _ref4.apply(this, arguments); }; }()); }); return function (_x4) { return _ref3.apply(this, arguments); }; }()); }); return function (_x3) { return _ref2.apply(this, arguments); }; }()); }); return function (_x2) { return _ref.apply(this, arguments); }; }()); } else { return undefined; } }); return _initGitHub.apply(this, arguments); } function initGitHubAction() { return _initGitHubAction.apply(this, arguments); } function _initGitHubAction() { _initGitHubAction = _asyncToGenerator(function* () { initGitHub(); }); return _initGitHubAction.apply(this, arguments); } var _default = (0, _commanderVersion.createCommand)("github").description("initialize GitHub repo").action(initGitHubAction); exports["default"] = _default;