@bconnorwhite/bob
Version:
Bob is a toolkit for TypeScript projects
137 lines (112 loc) • 5.59 kB
JavaScript
;
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;