mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-02 22:37:07 +08:00
57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
var _ = require('lodash');
|
|
var log = require('winston');
|
|
var path = require('canonical-path');
|
|
|
|
module.exports = {
|
|
name: 'error-docs',
|
|
description: 'Compute the various fields for docs in the Error area',
|
|
runAfter: ['tags-extracted'],
|
|
init: function(config, injectables) {
|
|
injectables.value('errorNamespaces', {});
|
|
|
|
var minerrInfoPath = config.get('processing.errors.minerrInfoPath');
|
|
if ( !minerrInfoPath ) {
|
|
throw new Error('Error in configuration: Please provide a path to the minerr info file (errors.json) ' +
|
|
'in the `config.processing.errors.minerrInfoPath` property');
|
|
}
|
|
injectables.value('minerrInfo', require(minerrInfoPath));
|
|
},
|
|
process: function(docs, partialNames, errorNamespaces, minerrInfo) {
|
|
|
|
// Create error namespace docs and attach error docs to each
|
|
_.forEach(docs, function(doc) {
|
|
if ( doc.docType === 'error' ) {
|
|
|
|
// Parse out the error info from the id
|
|
parts = doc.name.split(':');
|
|
doc.namespace = parts[0];
|
|
doc.name = parts[1];
|
|
|
|
|
|
var namespaceDoc = errorNamespaces[doc.namespace];
|
|
if ( !namespaceDoc ) {
|
|
// First time we came across this namespace, so create a new one
|
|
namespaceDoc = errorNamespaces[doc.namespace] = {
|
|
area: doc.area,
|
|
name: doc.namespace,
|
|
errors: [],
|
|
path: path.dirname(doc.path),
|
|
outputPath: path.dirname(doc.outputPath) + '.html',
|
|
docType: 'errorNamespace'
|
|
};
|
|
}
|
|
|
|
// Add this error to the namespace
|
|
namespaceDoc.errors.push(doc);
|
|
doc.namespace = namespaceDoc;
|
|
|
|
doc.formattedErrorMessage = minerrInfo.errors[doc.namespace.name][doc.name];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
return docs.concat(_.values(errorNamespaces));
|
|
}
|
|
}; |