20 lines
753 B
JavaScript
20 lines
753 B
JavaScript
module.exports = function extractPipeParams(createDocMessage) {
|
|
return {
|
|
$runAfter: ['extractDecoratedClassesProcessor'],
|
|
$runBefore: ['docs-processed'],
|
|
$process(docs) {
|
|
docs.forEach(doc => {
|
|
if (doc.docType === 'pipe') {
|
|
const transformFn = doc.members && doc.members.find(member => member.name === 'transform');
|
|
if (!transformFn) {
|
|
throw new Error(createDocMessage('Missing `transform` method - pipes must implement PipeTransform interface', doc));
|
|
}
|
|
doc.pipeName = doc.pipeOptions.name.replace(/^["']|["']$/g, '');
|
|
doc.valueParam = transformFn.parameterDocs[0];
|
|
doc.pipeParams = transformFn.parameterDocs.slice(1);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
};
|