package-json-from-git
Version:
Generate package.json information from Git data. Useful for `create-xxx` tools.
45 lines (44 loc) • 1.22 kB
JavaScript
// src/index.ts
import gitUrlParse from "git-url-parse";
import { simpleGit } from "simple-git";
async function getPackageJsonFromGit(baseDir) {
const git = simpleGit(baseDir);
let result = {};
try {
const remotes = await git.getRemotes(true);
const { latest } = await git.log({ maxCount: 1 });
const gitUrl = remotes.find((remote) => remote.name === "origin")?.refs.fetch;
if (gitUrl) {
const gitUrlInfo = gitUrlParse(gitUrl);
const httpsGitUrl = gitUrlInfo.toString("https");
const homepage = httpsGitUrl.substring(0, httpsGitUrl.length - 4);
let funding = void 0;
if (gitUrlInfo.source === "github.com") {
funding = `https://github.com/sponsors/${gitUrlInfo.owner}`;
}
result = {
...result,
homepage: homepage + "#readme",
bugs: {
url: homepage + "/issues"
},
repository: { type: "git", url: "git+" + httpsGitUrl },
funding
};
}
if (latest) {
result = {
...result,
author: {
name: latest.author_name,
email: latest.author_email
}
};
}
} catch (e) {
}
return result;
}
export {
getPackageJsonFromGit
};