1 | import exec from 'then-exec'
|
2 |
|
3 | export function trim(string: string) {
|
4 | return string.replace(/^\s+|\s+$/g, '')
|
5 | }
|
6 |
|
7 | export function loadVersion(version: string | number) {
|
8 | return exec(
|
9 | `unset npm_config_prefix && . ~/.nvm/nvm.sh && nvm use ${version}`,
|
10 | )
|
11 | }
|
12 |
|
13 | export function runCommand(version: string | number, command: string) {
|
14 | return exec(
|
15 | `unset npm_config_prefix && . ~/.nvm/nvm.sh && nvm use ${version} && ${command}`,
|
16 | )
|
17 | }
|
18 |
|
19 | export function runVersion(version: string | number) {
|
20 | return runCommand(
|
21 | version,
|
22 | "node -e 'process.stdout.write(process.versions.node)'",
|
23 | )
|
24 | }
|
25 |
|
26 | export function runInstall(version: string | number) {
|
27 | return exec(
|
28 | `unset npm_config_prefix && . ~/.nvm/nvm.sh && nvm install --no-progress ${version}`,
|
29 | )
|
30 | }
|
31 |
|
32 | export function lastLine(string: any) {
|
33 | return string.toString().trim().split('\n').slice(-1)[0].trim()
|
34 | }
|
35 |
|
36 | export function parseExitCode(code: any) {
|
37 |
|
38 | const number = Number(code)
|
39 | if (isNaN(number)) return null
|
40 | return number
|
41 | }
|
42 |
|
43 | export function uniq(array: any[]) {
|
44 | return [...new Set(array)]
|
45 | }
|