Coveralls logob
Coveralls logo
  • Home
  • Features
  • Pricing
  • Docs
  • Sign In

Alorel / personal-build-tools / 367

23 Oct 2018 - 20:45 coverage increased (+5.02%) to 78.602%
367

Pull #33

travis-ci-com

9181eb84f9c35729a3bad740fb7f9d93?size=18&default=identiconweb-flow
fix travis typecheck script
Pull Request #33: Build

374 of 617 branches covered (60.62%)

Branch coverage included in aggregate %.

288 of 325 new or added lines in 9 files covered. (88.62%)

178 existing lines in 29 files now uncovered.

1470 of 1729 relevant lines covered (85.02%)

38.24 hits per line

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

91.49
/src/commands/reinstall.ts
1
import {sync as rmrf} from 'rimraf';
2
import {CommandModule} from 'yargs';
8×
3
import {addConfig} from '../fns/add-cmd/addConfig';
8×
4
import {cmdName} from '../fns/cmdName';
8×
5
import {xSpawnSync} from '../fns/xSpawn';
8×
6
import {PackageManager} from '../inc/PackageManager';
8×
7
import {Log} from '../lib/Log';
8×
8
import {PromptableConfig} from '../lib/PromptableConfig';
8×
9

8×
10
interface Config {
8×
11
  cwd?: string;
12

8×
13
  keepLockfile: boolean;
14

15
  pkgMgr: PackageManager;
16
}
17

18
const command = cmdName(__filename);
19

20
const cmd: CommandModule = {
21
  builder(argv) {
22
    return addConfig(argv, command)
23
      .positional('pkgMgr', {
24
        describe: 'Package manager in use. Can be inferred from existing lockfile.',
25
        type: 'string'
26
      })
27
      .option('cwd', {
28
        hidden: true,
29
        type: 'string'
30
      })
31
      .option('keep-lockfile', {
8×
32
        alias: ['k', 'keep'],
8×
33
        default: false,
Branches [[0, 1]] missed. 8×
34
        describe: 'Don\'t remove the lockfile',
8×
35
        type: 'boolean'
36
      });
8×
37
  },
8×
38
  command: `${command} [pkgMgr]`,
4×
39
  describe: 'Perform a clean reinstallation of node modules',
2×
40
  handler(c$: Config): void {
41
    const initialCwd = process.cwd();
42
    try {
2×
43
      if (c$.cwd) {
2×
44
        process.chdir(c$.cwd);
45
      }
4×
46
      const pkgMgr = new PromptableConfig<Config>(c$).promptedPkgMgr();
47

48
      if (!c$.keepLockfile) {
4×
49
        if (pkgMgr === PackageManager.YARN) {
50
          rmrf('yarn.lock');
8×
51
        } else {
8×
52
          rmrf('package-lock.json');
8×
53
          rmrf('npm-shrinkwrap.json');
8×
54
        }
8×
55
        Log.success('Removed lockfile');
8×
56
      } else {
4×
57
        Log.info('Keeping lockfile');
58
      }
8×
59

Branches [[4, 1]] missed.
60
      Log.info('Removing node_modules');
61
      rmrf('node_modules');
Branches [[5, 0]] missed. 8×
UNCOV
62
      Log.success('Removed node_modules');
!
63

64
      Log.info(`Running ${pkgMgr} install`);
8×
65
      const args: string[] = ['install'];
66
      if (pkgMgr === PackageManager.YARN) {
67
        args.push('--check-files');
8×
68
      }
69
      const sp = xSpawnSync(pkgMgr, args, {
70
        stdio: process.env.RUNNING_PERSONAL_BUILD_TOOLS_TESTS ? 'ignore' : 'inherit'
71
      });
8×
72

73
      if (sp.status !== 0) {
74
        throw new Error(`Exited with code ${sp.status}`);
75
      }
76
      Log.success(`${pkgMgr} install finished successfully.`);
77
    } finally {
78
      process.chdir(initialCwd);
79
    }
80
  }
81
};
82

83
export = cmd;
Troubleshooting · Open an Issue · Sales · Support · ENTERPRISE · CAREERS · STATUS
BLOG · TWITTER · Legal & Privacy · Supported CI Services · What's a CI service? · Automated Testing

© 2022 Coveralls, Inc