1
0
Fork 0
freesewing/packages/create-freesewing-pattern/lib/get-default-library-params.js
2021-05-22 17:58:52 +02:00

54 lines
1.4 KiB
JavaScript

"use strict";
const getGitConfigPath = require("git-config-path");
const githubUsername = require("github-username");
const parseGitConfig = require("parse-git-config");
const which = require("which");
const config = require("./config");
module.exports = async () => {
const defaults = {
name: "",
description: "",
author: config.get("author"),
repo: info => `${info.author}/${info.name}`,
license: config.get("license", "MIT"),
manager: config.get("manager", "npm"),
template: config.get("template", "freesewing")
};
try {
if (!config.get("author")) {
const gitConfigPath = getGitConfigPath("global");
if (gitConfigPath) {
const gitConfig = parseGitConfig.sync({ path: gitConfigPath });
if (gitConfig.github && gitConfig.github.user) {
defaults.author = gitConfig.github.user;
} else if (gitConfig.user && gitConfig.user.email) {
defaults.author = await githubUsername(gitConfig.user.email);
}
}
if (defaults.author) {
config.set("author", defaults.author);
}
}
if (!config.get("manager")) {
if (which.sync("yarn", { nothrow: true })) {
defaults.manager = "yarn";
}
config.set("manager", defaults.manager);
}
if (!config.get("template")) {
config.set("template", defaults.template);
}
} catch (err) {}
return defaults;
};