pomeranian-durations
Version:
An immutable duration library based on the ISO-8601 format for durations.
64 lines (53 loc) • 2.56 kB
JavaScript
;
var _require = require("../package"),
homepage = _require.homepage;
var extractCategory = function extractCategory(doc) {
return doc.meta.filename.replace('.js', '');
};
var extractCategories = function extractCategories(parsedDocs) {
return Object.keys(parsedDocs.reduce(function (acc, doc) {
acc[extractCategory(doc)] = 0; // eslint-disable-line no-param-reassign
return acc;
}, {}));
};
var extractCategoryDescription = function extractCategoryDescription(parsedDocs, category) {
var categoryDefinition = parsedDocs.find(function (doc) {
return doc.id === 'default' && extractCategory(doc) === category;
});
return categoryDefinition ? categoryDefinition.description : '';
};
var generateHeadings = function generateHeadings(parsedDocs, category) {
return parsedDocs.filter(function (doc) {
return doc.id !== 'default' && extractCategory(doc) === category;
}).map(function (doc) {
return "[".concat(doc.longname, "](").concat(homepage, "/blob/master/src/").concat(doc.meta.filename, "#L").concat(doc.meta.lineno, ")");
}).join(' | ');
};
var generateCategoryNavigation = function generateCategoryNavigation(parsedDocs) {
return extractCategories(parsedDocs).map(function (category) {
return "- [".concat(category, "](#category-").concat(category, ")");
}).join('\n');
};
var extractCategoryExamples = function extractCategoryExamples(parsedDocs, category) {
return parsedDocs.filter(function (doc) {
return doc.id !== 'default' && extractCategory(doc) === category && doc.examples;
}).map(function (doc) {
return doc.examples.join('\n');
}).join('\n');
};
var generateCategoryHeading = function generateCategoryHeading(category) {
return "<a name=\"category-".concat(category, "\"></a>\n## ").concat(category);
};
var generateCategory = function generateCategory(parsedDocs, category) {
return "\n".concat(generateCategoryHeading(category), "\n\n").concat(generateHeadings(parsedDocs, category), "\n\n").concat(extractCategoryDescription(parsedDocs, category), "\n\n```javascript\n").concat(extractCategoryExamples(parsedDocs, category), "\n```\n").replace('\n\n\n', '\n');
};
module.exports = {
extractCategory: extractCategory,
extractCategories: extractCategories,
extractCategoryDescription: extractCategoryDescription,
generateHeadings: generateHeadings,
generateCategoryNavigation: generateCategoryNavigation,
extractCategoryExamples: extractCategoryExamples,
generateCategoryHeading: generateCategoryHeading,
generateCategory: generateCategory
};