|
1 | 1 | const path = require("path"); |
2 | 2 | const fs = require("fs"); |
3 | 3 | const inquirer = require("inquirer"); |
4 | | -const { spawn } = require("child_process"); |
5 | 4 | const chalk = require("chalk"); |
6 | | -const minimist = require("minimist"); |
| 5 | + |
7 | 6 | const uniq = require("lodash/uniq"); |
8 | 7 | const flatten = require("lodash/flatten"); |
9 | 8 |
|
10 | | -const argv = require("minimist")(process.argv.slice(2)); |
11 | | -const ui = new inquirer.ui.BottomBar(); |
12 | | - |
13 | | -let bottomMessageUpdateId = null; |
14 | | -let bottomMessage = ""; |
15 | | - |
16 | | -const showBottomMessage = (message = "") => { |
17 | | - const chars = "/-\\|"; |
18 | | - let index = 0; |
19 | | - |
20 | | - if (message !== bottomMessage) { |
21 | | - clearInterval(bottomMessageUpdateId); |
22 | | - |
23 | | - if (message !== "") { |
24 | | - bottomMessageUpdateId = setInterval(() => { |
25 | | - if (chars.charAt(index) === "") index = 0; |
26 | | - |
27 | | - ui.updateBottomBar(`${chars.charAt(index++)} ${message}`); |
28 | | - }, 100); |
29 | | - } else { |
30 | | - ui.updateBottomBar(""); |
31 | | - } |
32 | | - } |
33 | | - |
34 | | - bottomMessage = message; |
35 | | -}; |
36 | | - |
37 | | -const fileExists = async path => |
38 | | - new Promise(resolve => fs.stat(path, err => resolve(!err))); |
39 | | - |
40 | | -const runCommand = async (options = {}) => { |
41 | | - showBottomMessage(options.startMessage); |
42 | | - const proc = spawn(options.cmd, { shell: true }); |
43 | | - |
44 | | - if (options.logOutput !== false) proc.stdout.pipe(ui.log); |
45 | | - |
46 | | - let data = ""; |
47 | | - return new Promise((resolve, reject) => { |
48 | | - proc.stdout.on("data", d => (data = data + d.toString())); |
49 | | - proc.stdout.on("end", () => { |
50 | | - showBottomMessage(""); |
51 | | - options.endMessage && ui.log.write(options.endMessage); |
52 | | - ui.log.write(""); |
53 | | - resolve(data); |
54 | | - }); |
55 | | - proc.stdout.on("error", reject); |
56 | | - }); |
57 | | -}; |
| 9 | +const fileExists = require("./utils/fileExists"); |
| 10 | +const ui = require("./utils/ui"); |
| 11 | +const runCommand = require("./utils/runCommand"); |
58 | 12 |
|
59 | 13 | inquirer.registerPrompt( |
60 | 14 | "autocomplete", |
61 | 15 | require("inquirer-autocomplete-prompt") |
62 | 16 | ); |
63 | 17 |
|
64 | | -const run = async () => { |
| 18 | +const run = async args => { |
65 | 19 | "use strict"; |
66 | | - const { resolve, basename } = path; |
| 20 | + |
| 21 | + const argv = require("minimist")(args); |
| 22 | + const { resolve } = path; |
67 | 23 | const dir = argv._[0] || "."; |
68 | 24 |
|
69 | 25 | const projectPackagePath = resolve(dir, "package.json"); |
@@ -107,7 +63,7 @@ const run = async () => { |
107 | 63 | name: "targetDependency", |
108 | 64 | message: "Select a dependency to upgrade:", |
109 | 65 | pageSize: 15, |
110 | | - source: (undefined, input) => |
| 66 | + source: (_ignore_, input) => |
111 | 67 | Promise.resolve( |
112 | 68 | input |
113 | 69 | ? allDependencies.filter(name => new RegExp(input).test(name)) |
|
0 commit comments