UNPKG

roc

Version:

Build modern web applications easily

87 lines (61 loc) 2.53 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = genereateMarkdownActions; var _redent = require('redent'); var _redent2 = _interopRequireDefault(_redent); var _trimNewlines = require('trim-newlines'); var _trimNewlines2 = _interopRequireDefault(_trimNewlines); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Function used to generate markdown documentation for all the registered actions. * Can be piped to a file and uploaded somewhere easily. * * @param {string} name - Name from info object in {@link rocCommandObject}. * @param {Object[]} actions - The actions from {@link rocCommandObject}. * * @returns {string} - Markdown documentation. */ function genereateMarkdownActions(name) { let actions = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; // Remove project actions if any const lastExtension = actions[actions.length - 1]; if (lastExtension && lastExtension.project) { actions.pop(); } if (actions.length === 0) { return 'No actions available.'; } const rows = []; // Header rows.push('# Actions for `' + name + '`'); rows.push(''); rows.push('## Actions'); actions.forEach(extension => { const sortedActions = Object.keys(extension.actions).sort(); rows.push(`* [${ extension.name }](#${ extension.name })`); sortedActions.forEach(action => { rows.push(` * [${ action }](#${ action })`); }); }); rows.push(''); actions.forEach(extension => { rows.push(`## ${ extension.name }`); rows.push(''); const sortedActions = Object.keys(extension.actions).sort(); sortedActions.forEach(action => { const currentAction = extension.actions[action]; rows.push(`### ${ action }`); if (currentAction.description) { rows.push('', (0, _redent2.default)((0, _trimNewlines2.default)(currentAction.description))); } rows.push(''); rows.push('__Connects to extension:__ ' + (currentAction.extension ? `\`${ currentAction.extension }\`` : 'Not specified') + ' '); rows.push('__Connects to hook:__ ' + (currentAction.hook ? `\`${ currentAction.hook }\`` : 'Not specified') + ' '); rows.push(''); }); }); return rows.join('\n'); } //# sourceMappingURL=generate-markdown-actions.js.map