UNPKG

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