projectz
Version:
Stop wasting time syncing and updating your project's README and Package Files!
96 lines (95 loc) • 3.88 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBackersFile = exports.getBackersSection = exports.getContributeSection = void 0;
// external
const render_1 = require("@bevry/render");
const github_api_1 = require("@bevry/github-api");
// local
const util_js_1 = require("./util.js");
const badge_js_1 = require("./badge.js");
function getContributeLink(data, optional = false) {
// Prepare
const file = data.filenamesForReadmeFiles.contributing;
if (!file) {
if (optional)
return '';
throw new Error('Contributing section requires a CONTRIBUTING file to exist');
}
const url = (0, util_js_1.fileUrl)(data, file);
const inner = (0, render_1.t)(['Discover how to contribute via the', (0, render_1.mcode)(file), 'file.']);
// Return
return (0, render_1.ma)({ url, inner });
}
function getBackersLink(data, optional = false) {
// Prepare
const file = data.filenamesForReadmeFiles.backers;
if (!file) {
if (optional)
return '';
throw new Error('Backers section requires a BACKERS file to exist');
}
const url = (0, util_js_1.fileUrl)(data, file);
const inner = (0, render_1.t)(['Discover every backer via the', (0, render_1.mcode)(file), 'file.']);
// Return
return (0, render_1.ma)({ url, inner });
}
function getContributeSection(data) {
return (0, render_1.lines)([(0, render_1.mh2)('Contribute'), getContributeLink(data)]);
}
exports.getContributeSection = getContributeSection;
function getBackersText(data, headingLevel) {
const backersLink = getBackersLink(data, true) || '';
const showExtras = headingLevel === 1 || backersLink === '';
const renderedBackers = (0, github_api_1.renderBackers)(data, {
format: github_api_1.BackersRenderFormat.markdown,
githubSlug: data.github.slug,
});
return (0, render_1.lines)([
(0, render_1.mh)(headingLevel, 'Backers'),
(0, render_1.i)(showExtras, () => backersLink),
// Code
(0, render_1.mh)(headingLevel + 1, 'Code'),
(0, render_1.mp)(getContributeLink(data, true)),
// Authors
(0, render_1.i)(renderedBackers.authors?.length, () => [
(0, render_1.mh)(headingLevel + 2, 'Authors'),
(0, render_1.mul)(renderedBackers.authors),
]),
// Maintainers
(0, render_1.i)(renderedBackers.maintainers?.length, () => [
(0, render_1.mh)(headingLevel + 2, 'Maintainers'),
(0, render_1.mul)(renderedBackers.maintainers),
]),
// Contributors
(0, render_1.i)(renderedBackers.contributors?.length && showExtras, () => [
(0, render_1.mh)(headingLevel + 2, 'Contributors'),
(0, render_1.mul)(renderedBackers.contributors),
]),
// Finances
(0, render_1.mh)(headingLevel + 1, 'Finances'),
(0, render_1.mp)((0, badge_js_1.getBadgesInCategory)('funding', data)),
// Funders
(0, render_1.i)(renderedBackers.funders?.length, () => [
(0, render_1.mh)(headingLevel + 2, 'Funders'),
(0, render_1.mul)(renderedBackers.funders),
]),
// Sponsors
(0, render_1.i)(renderedBackers.sponsors?.length, () => [
(0, render_1.mh)(headingLevel + 2, 'Sponsors'),
(0, render_1.mul)(renderedBackers.sponsors),
]),
// Donors
(0, render_1.i)(renderedBackers.donors?.length && showExtras, () => [
(0, render_1.mh)(headingLevel + 2, 'Donors'),
(0, render_1.mul)(renderedBackers.donors),
]),
]);
}
function getBackersSection(data) {
return getBackersText(data, 2);
}
exports.getBackersSection = getBackersSection;
function getBackersFile(data) {
return getBackersText(data, 1);
}
exports.getBackersFile = getBackersFile;
;