c3220325a0
Thanks to @narretz for help in fixing style violations and to @gkalpak for a very extensive review. Closes #14952
50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* @dgProcessor errorDocsProcessor
|
|
* @description
|
|
* Process "error" docType docs and generate errorNamespace docs
|
|
*/
|
|
module.exports = function errorDocsProcessor(errorNamespaceMap, getMinerrInfo) {
|
|
return {
|
|
$runAfter: ['tags-extracted'],
|
|
$runBefore: ['extra-docs-added'],
|
|
$process: function(docs) {
|
|
|
|
// Create error namespace docs and attach error docs to each
|
|
docs.forEach(function(doc) {
|
|
var parts, namespaceDoc;
|
|
|
|
if (doc.docType === 'error') {
|
|
|
|
// Parse out the error info from the id
|
|
parts = doc.name.split(':');
|
|
doc.namespace = parts[0];
|
|
doc.name = parts[1];
|
|
|
|
// Get or create the relevant errorNamespace doc
|
|
namespaceDoc = errorNamespaceMap.get(doc.namespace);
|
|
if (!namespaceDoc) {
|
|
namespaceDoc = {
|
|
area: 'error',
|
|
name: doc.namespace,
|
|
errors: [],
|
|
docType: 'errorNamespace'
|
|
};
|
|
errorNamespaceMap.set(doc.namespace, namespaceDoc);
|
|
}
|
|
|
|
// Link this error doc to its namespace doc
|
|
namespaceDoc.errors.push(doc);
|
|
doc.namespaceDoc = namespaceDoc;
|
|
doc.formattedErrorMessage = getMinerrInfo().errors[doc.namespace][doc.name];
|
|
}
|
|
});
|
|
|
|
errorNamespaceMap.forEach(function(errorNamespace) {
|
|
docs.push(errorNamespace);
|
|
});
|
|
}
|
|
};
|
|
};
|