in dgeni/processors/readPackageInfo.js [7:63]
$process(docs) {
docs.forEach(doc => {
if(doc.docType === 'dgPackage') {
// Create an instance of the processor and extract the interesting properties
doc.package = require(doc.fileInfo.filePath);
doc.services = [];
// Wire up the processor docs
doc.processors = doc.package.processors.map(processorName => {
processorName = processorName.name || processorName;
// TODO - yes this is horribly slow :-)
let processorDoc = docs.find(doc => doc.docType === 'dgProcessor' && (processorName === doc.name || processorName === doc.codeName));
if (!processorDoc) {
processorDoc = {
docType: 'dgProcessor'
};
docs.push(processorDoc);
}
// No doc for this processor so get it from the package
let processor = doc.package.module[processorName][1];
if (doc.package.module[processorName][0] === 'factory') {
// processor is defined as a factory so we call it to get the definition
processor = processor();
}
processorDoc.$runBefore = processor.$runBefore;
processorDoc.$runAfter = processor.$runAfter;
processorDoc.$validate = processor.$validate;
processorDoc.$process = processor.$process;
processorDoc.name = processorName;
processorDoc.packageDoc = doc;
return processorDoc;
});
// Wire up package dependency docs
doc.dependencies = doc.package.dependencies.map(dependency => {
// TODO - yes this is horribly slow :-)
let packageDoc = docs.find(doc => dependency.name === doc.name || dependency === doc.name);
if (!packageDoc) {
// No doc for this dependency package so get it direcly from the package
packageDoc = dependency instanceof Package ? dependency : { name: dependency };
}
return packageDoc;
});
}
});
}