github-action-readme-generator
Version:
The docs generator for GitHub Actions. Auto-syncs action.yml to README.md with 8 sections: inputs, outputs, usage, badges, branding & more. Works as CLI or GitHub Action.
49 lines • 1.89 kB
JavaScript
import { columnHeader, rowHeader } from '../helpers.js';
import LogTask from '../logtask/index.js';
import markdowner from '../markdowner/index.js';
export default function updateInputs(sectionToken, inputs) {
const log = new LogTask(sectionToken);
// Build the new README
const content = [];
const markdownArray = [];
const titleArray = ['Input', 'Description', 'Default', 'Required'];
const titles = [];
for (const t of titleArray) {
titles.push(columnHeader(t));
}
markdownArray.push(titles);
const vars = inputs.action.inputs;
const tI = vars ? Object.keys(vars).length : 0;
if (vars && tI > 0) {
log.start();
for (const key of Object.keys(vars)) {
const values = vars[key];
let description = values?.description ?? '';
// Check if only the first line should be added (only subject without body)
const matches = /(.*?)\n\n([Ss]*)/.exec(description);
if (matches && matches.length >= 2) {
description = matches[1] || description;
}
description = description.trim().replace('\n', '<br />');
const row = [
rowHeader(key),
description,
values?.default ? `<code>${values.default}</code>` : '',
values?.required ? '**true**' : '__false__',
];
log.debug(JSON.stringify(row));
markdownArray.push(row);
}
content.push(markdowner(markdownArray));
log.info(`Action has ${tI} total ${sectionToken}`);
inputs.readmeEditor.updateSection(sectionToken, content);
log.success();
}
else {
log.debug(`Action has no ${sectionToken}`);
}
const ret = {};
ret[sectionToken] = content.join('\n');
return ret;
}
//# sourceMappingURL=update-inputs.js.map