-
Notifications
You must be signed in to change notification settings - Fork 4
/
function.js
42 lines (37 loc) · 1.29 KB
/
function.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
38
39
40
41
42
import {
stat, rename, unlink, truncate,
open, close, read, write, readlink, symlink,
readFile, writeFile, appendFile, copyFile,
mkdir, rmdir, readdir,
createReadStream, createWriteStream,
access,
constants as fsConstants
} from 'fs'
import { promisify } from 'util'
const [
statAsync, renameAsync, unlinkAsync, truncateAsync,
openAsync, closeAsync, readAsync, writeAsync, readlinkAsync, symlinkAsync,
readFileAsync, writeFileAsync, appendFileAsync, copyFileAsync,
mkdirAsync, rmdirAsync, readdirAsync
] = [
stat, rename, unlink, truncate,
open, close, read, write, readlink, symlink,
readFile, writeFile, appendFile, copyFile,
mkdir, rmdir, readdir
].map((fsFunc) => promisify(fsFunc))
const [
visibleAsync, readableAsync, writableAsync, executableAsync
] = [
fsConstants.F_OK,
fsConstants.R_OK,
fsConstants.W_OK,
fsConstants.X_OK
].map((mode) => (path) => new Promise((resolve) => access(path, mode, (error) => resolve(!error))))
export {
createReadStream, createWriteStream,
statAsync, renameAsync, unlinkAsync, truncateAsync,
openAsync, closeAsync, readAsync, writeAsync, readlinkAsync, symlinkAsync,
readFileAsync, writeFileAsync, appendFileAsync, copyFileAsync,
mkdirAsync, rmdirAsync, readdirAsync,
visibleAsync, readableAsync, writableAsync, executableAsync
}