UNPKG

package-json-from-git

Version:

Generate package.json information from Git data. Useful for `create-xxx` tools.

45 lines (44 loc) 1.22 kB
// 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 };