Description: fix for mkdirp ≥ 1
Author: Xavier Guimard <yadd@debian.org>
Forwarded: no
Last-Update: 2020-10-23

--- a/lib/render.js
+++ b/lib/render.js
@@ -66,11 +66,7 @@
 
     emitter.emit('info', chalk.green('Rendering Complete, saving .css file...'));
 
-    mkdirp(path.dirname(destination), function(err) {
-      if (err) {
-        return emitter.emit('error', chalk.red(err));
-      }
-
+    mkdirp(path.dirname(destination)).then( () => {
       fs.writeFile(destination, result.css.toString(), function(err) {
         if (err) {
           return emitter.emit('error', chalk.red(err));
@@ -80,15 +76,16 @@
         emitter.emit('write', err, destination, result.css.toString());
         done();
       });
+    }).catch((err) => {
+      return emitter.emit('error', chalk.red(err));
     });
 
     if (sourceMap) {
       todo++;
 
-      mkdirp(path.dirname(sourceMap), function(err) {
-        if (err) {
-          return emitter.emit('error', chalk.red(err));
-        }
+      mkdirp(path.dirname(sourceMap)).then(() => {
+        return emitter.emit('error', chalk.red(err));
+      }).catch((err) => {
         fs.writeFile(sourceMap, result.map, function(err) {
           if (err) {
             return emitter.emit('error', chalk.red('Error' + err));
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -24,7 +24,7 @@
             : 'Release',
     'binding.node');
 
-  mkdir(path.dirname(install), function(err) {
+  const ep = function(err) {
     if (err && err.code !== 'EEXIST') {
       console.error(err.message);
       return;
@@ -45,7 +45,8 @@
         console.log('Installed to', install);
       });
     });
-  });
+  };
+  mkdir(path.dirname(install)).then(() => {ep()}).catch((e) => {ep(e)});
 }
 
 /**
--- a/scripts/coverage.js
+++ b/scripts/coverage.js
@@ -20,8 +20,7 @@
       var cov = global.__coverage__,
         collector = new istanbul.Collector();
       if (cov) {
-        mkdirp(path.join('coverage', 'html'), function(err) {
-          if (err) { throw err; }
+        mkdirp(path.join('coverage', 'html')).then(() => {
           collector.add(cov);
           summary.writeReport(collector, true);
           html.writeReport(collector, true);
@@ -33,6 +32,8 @@
             });
           });
           lcov.writeReport(collector, true);
+        }).catch((err) => {
+          throw err;
         });
       } else {
         console.warn('No coverage');
@@ -44,8 +45,7 @@
   var processfile = function(source) {
     fs.readFile(path.join('lib', source), function(err, data) {
       if (err) { throw err; }
-      mkdirp('lib-cov', function(err) {
-        if (err) { throw err; }
+      mkdirp('lib-cov').then(() => {
         fs.writeFile(path.join('lib-cov', source),
                instrumenter.instrumentSync(data.toString(),
                  path.join('lib', source)),
@@ -70,6 +70,8 @@
                    });
                  }
                });
+      }).catch((err) => {
+        throw err;
       });
     });
   };
