(
token: string,
)
| 492 | } |
| 493 | |
| 494 | public async getMatchingAliases( |
| 495 | token: string, |
| 496 | ): Promise<Alias[] | undefined> { |
| 497 | const aliases = await this.getAllAliases(true); |
| 498 | if(!aliases){ |
| 499 | return undefined; |
| 500 | } |
| 501 | |
| 502 | const matchingAliases = aliases.filter( |
| 503 | (alias) => |
| 504 | token === alias.alias || |
| 505 | token === `${alias.package}::${alias.alias}` || |
| 506 | token === `${alias.package}:::${alias.alias}`, |
| 507 | ); |
| 508 | |
| 509 | // Filter out identical aliases. This would cause noticeable delay on the full list. |
| 510 | const aliasesIdentical = (a1: Alias, a2: Alias) => ( |
| 511 | a1.package === a2.package |
| 512 | && a1.name.replace(/^dot-/, '.') === a2.name.replace(/^dot-/, '.') |
| 513 | ); |
| 514 | const uniqueAliases = uniqueEntries(matchingAliases, aliasesIdentical); |
| 515 | |
| 516 | return uniqueAliases; |
| 517 | } |
| 518 | |
| 519 | // search function, similar to calling `?` in R |
| 520 | public async searchHelpByAlias(): Promise<boolean> { |
no test coverage detected