• 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

86.21
/src/command/alias/delete-alias-command.ts
1
import yargs from "yargs";
2
import { PositionalArgument } from '../../model/api/positional-argument';
3
import { PositionalArgumentType } from '../../model/api/positional-argument-type'
161✔
4
import { AnyObj } from "../../util/custom-types";
5
import { YargsUtils } from "../../util/yargs-utils";
161✔
6
import { StringUtils } from "../../util/string-utils";
161✔
7
import { NodeUtils } from '../../util/node-utils';
161✔
8
import { PackageJsonLoader } from '../../loader/package-json-loader';
161✔
9
import { NcaCommandTemplate } from "../../model/internal/nca-command-template";
161✔
10

11
export class DeleteAliasCommand extends NcaCommandTemplate {
161✔
12

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

17
  override getCommandDescription(): string {
18
    return 'remove one or more nca aliases';
161✔
19
  }
20

21
  override getPositionalArguments(): PositionalArgument[] {
22
    const positionalArgument: PositionalArgument = {
322✔
23
      name: 'aliasNames',
24
      description: 'nca aliases to remove',
25
      type: PositionalArgumentType.StringList,
26
      required: true
27
    }
28
    return [positionalArgument];
322✔
29
  }
30

31
  override getHandler<T = AnyObj>(args: yargs.ArgumentsCamelCase<T>): void {
32
    const aliasNames = args.aliasNames as string[];
29✔
33

34
    const packageJsonLoader = new PackageJsonLoader();
29✔
35

36
    const initialBinEntriesCount = packageJsonLoader.aliasCount;
29✔
37

38
    aliasNames.forEach(aliasName => {
29✔
39
      const aliasCommand = packageJsonLoader.getAliasCommand(aliasName);
29✔
40

41
      if (StringUtils.isNotEmpty(aliasCommand)) {
29!
42
        packageJsonLoader.deleteAlias(aliasName);
29✔
43
      } else {
NEW
44
        console.log(`Alias '${aliasName}' does not exist`);
×
45
      }
46
    });
47

48
    const binEntriesCount = packageJsonLoader.aliasCount;
29✔
49
    if (initialBinEntriesCount === binEntriesCount) {
29!
NEW
50
      console.warn('Alias package json has been left unchanged');
×
51
    } else {
52
      NodeUtils.unlinkLocalAliases();
29✔
53

54
      // Package json update needs to be done after unlinking the local aliases,
55
      // otherwise the local alias start script will not be removed node folder
56
      packageJsonLoader.writeOnDisk();
29✔
57

58
      NodeUtils.linkLocalAliases();
29✔
59
    }
60
  }
61
}
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