doc.methods.map(method => { return Object.assign(method, { tags: getDoctrineTags(doctrine.parse(method.docblock)), }); })
// Read doclets of props Object.keys(doc.props).forEach(propName => { const prop = doc.props[propName]; const doclets = getDocletsObject(prop.description); // when a prop is listed in defaultProps but not in props the prop.description is undefined const documentation = doctrine.parse(prop.description || ''); // documentation.description is the description without tags doc.props[propName].description = documentation.description; doc.props[propName].tags = getDoctrineTags(documentation); // Remove ignored props if (doclets && doclets.ignore) { delete doc.props[propName]; } });
jsdoc = doctrine.parse(jsdocNode.value, { strict: true, unwrap: true, switch (tag.title.toLowerCase()) { if (!tag.type) { context.report({ node: jsdocNode, message: "Missing JSDoc parameter type for '{{name}}'.", data: { name: tag.name } }); if (!tag.description && requireParamDescription) { context.report({ node: jsdocNode, message: "Missing JSDoc parameter description for '{{name}}'.", data: { name: tag.name } }); if (params[tag.name]) { context.report({ node: jsdocNode, message: "Duplicate JSDoc parameter '{{name}}'.", data: { name: tag.name } }); } else if (tag.name.indexOf(".") === -1) { params[tag.name] = 1; if (!requireReturn && !functionData.returnPresent && (tag.type === null || !isValidReturnType(tag)) && !isAbstract) { context.report({ node: jsdocNode, message: "Unexpected @{{title}} tag; function has no return statement.", data: { title: tag.title if (requireReturnType && !tag.type) { context.report({ node: jsdocNode, message: "Missing JSDoc return type." }); if (!isValidReturnType(tag) && !tag.description && requireReturnDescription) { context.report({ node: jsdocNode, message: "Missing JSDoc return description." });