11'use strict'
22
3- const fs = require ( 'fs' )
4- const rm = require ( 'rimraf' )
3+ const fs = require ( 'fs' ) . promises
54const path = require ( 'path' )
65const log = require ( './log' )
76const semver = require ( 'semver' )
87
9- function remove ( gyp , argv , callback ) {
8+ async function remove ( gyp , argv ) {
109 const devDir = gyp . devDir
1110 log . verbose ( 'remove' , 'using node-gyp dir:' , devDir )
1211
@@ -15,7 +14,7 @@ function remove (gyp, argv, callback) {
1514 log . verbose ( 'remove' , 'removing target version:' , version )
1615
1716 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 + '"' )
1918 }
2019
2120 const versionSemver = semver . parse ( version )
@@ -28,19 +27,19 @@ function remove (gyp, argv, callback) {
2827 log . verbose ( 'remove' , 'removing development files for version:' , version )
2928
3029 // 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
3935 }
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 } )
4340}
4441
45- module . exports = exports = remove
42+ module . exports = function ( gyp , argv , callback ) {
43+ remove ( gyp , argv ) . then ( callback . bind ( undefined , null ) , callback )
44+ }
4645module . exports . usage = 'Removes the node development files for the specified version'
0 commit comments