51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const encodeSummaryArticle_1 = __importDefault(require("../json/encodeSummaryArticle"));
|
|
/**
|
|
Encode summary to provide an API to plugin
|
|
|
|
@param {Output} output
|
|
@param {Config} config
|
|
@return {Object}
|
|
*/
|
|
function encodeSummary(output, summary) {
|
|
const result = {
|
|
/**
|
|
Iterate over the summary, it stops when the "iter" returns false
|
|
|
|
@param {Function} iter
|
|
*/
|
|
walk: function (iter) {
|
|
summary.getArticle((article) => {
|
|
const jsonArticle = (0, encodeSummaryArticle_1.default)(article, false);
|
|
return iter(jsonArticle);
|
|
});
|
|
},
|
|
/**
|
|
Get an article by its level
|
|
|
|
@param {string} level
|
|
@return {Object}
|
|
*/
|
|
getArticleByLevel: function (level) {
|
|
const article = summary.getByLevel(level);
|
|
return article ? (0, encodeSummaryArticle_1.default)(article) : undefined;
|
|
},
|
|
/**
|
|
Get an article by its path
|
|
|
|
@param {string} level
|
|
@return {Object}
|
|
*/
|
|
getArticleByPath: function (level) {
|
|
const article = summary.getByPath(level);
|
|
return article ? (0, encodeSummaryArticle_1.default)(article) : undefined;
|
|
}
|
|
};
|
|
return result;
|
|
}
|
|
exports.default = encodeSummary;
|