• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

gturi / nca / 8277672099

14 Mar 2024 08:32AM UTC coverage: 86.091% (+0.1%) from 85.979%
8277672099

push

github

web-flow
Merge pull request #213 from gturi/feature/nca-alias-command

Feature/nca alias command

221 of 316 branches covered (69.94%)

Branch coverage included in aggregate %.

598 of 661 new or added lines in 62 files covered. (90.47%)

1 existing line in 1 file now uncovered.

1116 of 1237 relevant lines covered (90.22%)

1211.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

26.83
/src/command/alias/list-alias-command.ts
1
import yargs from "yargs";
2
import { OptionParam } from '../../model/api/option-param';
3
import { OptionParamType } from '../../model/api/option-param-type';
161✔
4
import { AnyObj } from "../../util/custom-types";
5
import { YargsUtils } from '../../util/yargs-utils';
161✔
6
import { NodeUtils } from '../../util/node-utils';
161✔
7
import { PackageJsonLoader } from '../../loader/package-json-loader';
161✔
8
import { NcaCommandTemplate } from "../../model/internal/nca-command-template";
161✔
9

10
export class ListAliasCommand extends NcaCommandTemplate {
161✔
11

12
  override getCommandName(): string {
13
    return YargsUtils.getCommand('list', this.getPositionalArguments());
161✔
14
  }
15

16
  override getCommandDescription(): string {
17
    return 'list the global aliases';
161✔
18
  }
19

20
  override getOptionParams(): OptionParam[] {
21
    const broken: OptionParam = {
161✔
22
      name: 'b',
23
      alternativeName: 'broken',
24
      description: 'show only the broken aliases',
25
      optionType: OptionParamType.Boolean,
26
      defaultValue: 'false'
27
    }
28
    const removeBroken: OptionParam = {
161✔
29
      name: 'r',
30
      alternativeName: 'remove-broken',
31
      description: 'remove the broken aliases',
32
      optionType: OptionParamType.Boolean,
33
      defaultValue: 'false'
34
    }
35
    return [broken, removeBroken];
161✔
36
  }
37

38
  override getHandler<T = AnyObj>(args: yargs.ArgumentsCamelCase<T>): void {
NEW
39
    const showBroken = args.b as boolean;
×
NEW
40
    const removeBroken = args.r as boolean;
×
41

NEW
42
    const packageJsonLoader = new PackageJsonLoader();
×
43

44
    let aliases: string[];
NEW
45
    if (showBroken === true || removeBroken === true) {
×
NEW
46
      aliases = packageJsonLoader.getBrokenAliases();
×
47
    } else {
NEW
48
      aliases = Object.keys(packageJsonLoader.bin);
×
49
    }
50

NEW
51
    if (aliases.length === 0) {
×
NEW
52
      console.log('No aliases found');
×
NEW
53
      return;
×
54
    }
55

NEW
56
    this.prettyPrintAliases(packageJsonLoader, aliases);
×
57

NEW
58
    if (removeBroken === true && aliases.length > 0) {
×
NEW
59
      aliases.forEach(aliasName => packageJsonLoader.deleteAlias(aliasName));
×
60

NEW
61
      NodeUtils.refreshLocalAliases();
×
62
    }
63
  }
64

65
  private prettyPrintAliases(packageJsonLoader: PackageJsonLoader, aliasNames: string[]): void {
NEW
66
    aliasNames.forEach(aliasName => {
×
NEW
67
      const aliasCodePath = packageJsonLoader.getAliasCodePath(aliasName) ?? 'unknown';
×
NEW
68
      console.log(`${aliasName} --> '${aliasCodePath}'`);
×
69
    });
70
  }
71
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc