Skip to content

Commit 03eecab

Browse files
FNDmoonglum
authored andcommitted
replaced promisify with native alternatives
in the process, also got rid of obsolete workarounds for legacy versions
1 parent 8e4f684 commit 03eecab

File tree

3 files changed

+5
-24
lines changed

3 files changed

+5
-24
lines changed

lib/util/files/finder.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
let fs = require("fs");
1+
let { readdir, stat } = require("fs/promises");
22
let path = require("path");
3-
let { promisify } = require("util");
4-
5-
let stat = promisify(fs.stat);
6-
let readDir = promisify(fs.readdir);
73

84
module.exports = class FileFinder {
95
constructor(directory, { skipDotfiles, filter = () => true } = {}) {
@@ -36,7 +32,7 @@ function tree(filepath, referenceDir = filepath) {
3632
return [path.relative(referenceDir, filepath)];
3733
}
3834

39-
return readDir(filepath).
35+
return readdir(filepath).
4036
then(entries => {
4137
let res = Promise.all(entries.map(entry => {
4238
return tree(path.join(filepath, entry), referenceDir);

lib/util/files/index.js

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
"use strict";
22

3-
let { abort, repr } = require("../");
4-
let fs = require("fs");
3+
let { writeFile } = require("fs/promises");
4+
let { mkdirSync } = require("fs");
55
let path = require("path");
6-
let { promisify } = require("util");
76

87
let KNOWN = {}; // avoids redundant `mkdirp` invocations
98
let LOCKS = {};
109

11-
let writeFile = promisify(fs.writeFile);
12-
1310
// avoids concurrent write operations and creates target directory if necessary
1411
module.exports = function createFile(filepath, contents) {
1512
let lock = LOCKS[filepath];
@@ -21,7 +18,7 @@ module.exports = function createFile(filepath, contents) {
2118
if(!KNOWN[filepath]) {
2219
KNOWN[filepath] = true;
2320
// NB: `sync` avoids race condition for subsequent operations
24-
mkdirpSync(path.dirname(filepath));
21+
mkdirSync(path.dirname(filepath), { recursive: true });
2522
}
2623

2724
let prom = writeFile(filepath, contents);
@@ -30,13 +27,3 @@ module.exports = function createFile(filepath, contents) {
3027
delete LOCKS[filepath];
3128
});
3229
};
33-
34-
function mkdirpSync(directory) {
35-
try {
36-
// NB: `recursive` option was introduced in Node v10.12.0
37-
fs.mkdirSync(directory, { recursive: true });
38-
} catch(err) {
39-
abort(`ERROR: auto-creating ${repr(directory)} requires ` +
40-
"Node v10.12.0 or above");
41-
}
42-
}

lib/util/index.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
let path = require("path");
44
let crypto = require("crypto");
5-
let { promisify } = require("util");
65

76
exports.abort = abort;
8-
exports.promisify = promisify; // deprecated
97
exports.repr = repr;
108

119
// reports success or failure for a given file path (typically regarding

0 commit comments

Comments
 (0)