(parser, doclet, astNode)
| 233 | } |
| 234 | |
| 235 | function addSymbolMemberof(parser, doclet, astNode) { |
| 236 | let basename; |
| 237 | let memberof; |
| 238 | let memberofInfo; |
| 239 | let moduleOriginalName = ''; |
| 240 | let resolveTargetRegExp; |
| 241 | let scopePunc; |
| 242 | let unresolved; |
| 243 | |
| 244 | if (!astNode) { |
| 245 | return; |
| 246 | } |
| 247 | |
| 248 | // check to see if the doclet name is an unresolved reference to the module object, or to `this` |
| 249 | // TODO: handle cases where the module object is shadowed in the current scope |
| 250 | if (currentModule) { |
| 251 | moduleOriginalName = `|${currentModule.originalName}`; |
| 252 | } |
| 253 | resolveTargetRegExp = new RegExp(`^((?:module.)?exports|this${moduleOriginalName})(\\.|\\[|$)`); |
| 254 | unresolved = resolveTargetRegExp.exec(doclet.name); |
| 255 | |
| 256 | if (unresolved) { |
| 257 | memberofInfo = findSymbolMemberof(parser, doclet, astNode, unresolved[1], unresolved[2]); |
| 258 | memberof = memberofInfo.memberof; |
| 259 | scopePunc = memberofInfo.scopePunc; |
| 260 | |
| 261 | if (memberof) { |
| 262 | doclet.name = doclet.name ? |
| 263 | memberof + scopePunc + doclet.name : |
| 264 | memberof; |
| 265 | } |
| 266 | } |
| 267 | else { |
| 268 | memberofInfo = parser.astnodeToMemberof(astNode); |
| 269 | basename = memberofInfo.basename; |
| 270 | memberof = memberofInfo.memberof; |
| 271 | } |
| 272 | |
| 273 | // if we found a memberof name, apply it to the doclet |
| 274 | if (memberof) { |
| 275 | doclet.addTag('memberof', memberof); |
| 276 | if (basename) { |
| 277 | doclet.name = (doclet.name || '') |
| 278 | .replace(new RegExp(`^${escape(basename)}.`), ''); |
| 279 | } |
| 280 | } |
| 281 | // otherwise, add the defaults for a module (if we're currently in a module) |
| 282 | else { |
| 283 | setModuleScopeMemberOf(parser, doclet); |
| 284 | } |
| 285 | } |
| 286 | |
| 287 | function newSymbolDoclet(parser, docletSrc, e) { |
| 288 | const newDoclet = createSymbolDoclet(docletSrc, e); |
no test coverage detected
searching dependent graphs…