1
1
'use strict'
2
2
3
- const fs = require ( 'fs' )
4
- const rm = require ( 'rimraf' )
3
+ const fs = require ( 'fs' ) . promises
5
4
const path = require ( 'path' )
6
5
const log = require ( './log' )
7
6
const semver = require ( 'semver' )
8
7
9
- function remove ( gyp , argv , callback ) {
8
+ async function remove ( gyp , argv ) {
10
9
const devDir = gyp . devDir
11
10
log . verbose ( 'remove' , 'using node-gyp dir:' , devDir )
12
11
@@ -15,7 +14,7 @@ function remove (gyp, argv, callback) {
15
14
log . verbose ( 'remove' , 'removing target version:' , version )
16
15
17
16
if ( ! version ) {
18
- return callback ( new Error ( 'You must specify a version number to remove. Ex: "' + process . version + '"' ) )
17
+ throw new Error ( 'You must specify a version number to remove. Ex: "' + process . version + '"' )
19
18
}
20
19
21
20
const versionSemver = semver . parse ( version )
@@ -28,19 +27,19 @@ function remove (gyp, argv, callback) {
28
27
log . verbose ( 'remove' , 'removing development files for version:' , version )
29
28
30
29
// first check if its even installed
31
- fs . stat ( versionPath , function ( err ) {
32
- if ( err ) {
33
- if ( err . code === 'ENOENT' ) {
34
- callback ( null , 'version was already uninstalled: ' + version )
35
- } else {
36
- callback ( err )
37
- }
38
- return
30
+ try {
31
+ await fs . stat ( versionPath )
32
+ } catch ( err ) {
33
+ if ( err . code === 'ENOENT' ) {
34
+ return 'version was already uninstalled: ' + version
39
35
}
40
- // Go ahead and delete the dir
41
- rm ( versionPath , callback )
42
- } )
36
+ throw err
37
+ }
38
+
39
+ await fs . rm ( versionPath , { recursive : true , force : true } )
43
40
}
44
41
45
- module . exports = exports = remove
42
+ module . exports = function ( gyp , argv , callback ) {
43
+ remove ( gyp , argv ) . then ( callback . bind ( undefined , null ) , callback )
44
+ }
46
45
module . exports . usage = 'Removes the node development files for the specified version'
0 commit comments