-
Notifications
You must be signed in to change notification settings - Fork 7
/
fs.js
37 lines (33 loc) · 895 Bytes
/
fs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';
const fs = require('fs');
function promisify(func) {
return function(...args) {
return new Promise((resolve, reject) => {
args.push(wrap(resolve, reject));
// @ts-ignore
func.call(this, ...args);
});
};
}
function wrap(resolve, reject) {
return function(err, result) {
if (err) {
reject(err);
return;
}
resolve(result);
};
}
exports.stat = promisify(fs.stat);
exports.open = promisify(fs.open);
exports.close = promisify(fs.close);
exports.read = promisify(fs.read);
exports.write = promisify(fs.write);
exports.ftruncate = promisify(fs.ftruncate);
exports.createWriteStream = fs.createWriteStream;
exports.mkdir = promisify(fs.mkdir);
exports.rename = promisify(fs.rename);
exports.readdir = promisify(fs.readdir);
exports.stat = promisify(fs.stat);
exports.unlink = promisify(fs.unlink);
exports.unsupported = false;