1 | "use strict";
|
2 | var __spreadArrays = (this && this.__spreadArrays) || function () {
|
3 | for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
4 | for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
5 | for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
6 | r[k] = a[j];
|
7 | return r;
|
8 | };
|
9 | Object.defineProperty(exports, "__esModule", { value: true });
|
10 | exports.FileHandle = void 0;
|
11 | function promisify(vol, fn, getResult) {
|
12 | if (getResult === void 0) { getResult = function (input) { return input; }; }
|
13 | return function () {
|
14 | var args = [];
|
15 | for (var _i = 0; _i < arguments.length; _i++) {
|
16 | args[_i] = arguments[_i];
|
17 | }
|
18 | return new Promise(function (resolve, reject) {
|
19 | vol[fn].bind(vol).apply(void 0, __spreadArrays(args, [function (error, result) {
|
20 | if (error)
|
21 | return reject(error);
|
22 | return resolve(getResult(result));
|
23 | }]));
|
24 | });
|
25 | };
|
26 | }
|
27 | var FileHandle = (function () {
|
28 | function FileHandle(vol, fd) {
|
29 | this.vol = vol;
|
30 | this.fd = fd;
|
31 | }
|
32 | FileHandle.prototype.appendFile = function (data, options) {
|
33 | return promisify(this.vol, 'appendFile')(this.fd, data, options);
|
34 | };
|
35 | FileHandle.prototype.chmod = function (mode) {
|
36 | return promisify(this.vol, 'fchmod')(this.fd, mode);
|
37 | };
|
38 | FileHandle.prototype.chown = function (uid, gid) {
|
39 | return promisify(this.vol, 'fchown')(this.fd, uid, gid);
|
40 | };
|
41 | FileHandle.prototype.close = function () {
|
42 | return promisify(this.vol, 'close')(this.fd);
|
43 | };
|
44 | FileHandle.prototype.datasync = function () {
|
45 | return promisify(this.vol, 'fdatasync')(this.fd);
|
46 | };
|
47 | FileHandle.prototype.read = function (buffer, offset, length, position) {
|
48 | return promisify(this.vol, 'read', function (bytesRead) { return ({ bytesRead: bytesRead, buffer: buffer }); })(this.fd, buffer, offset, length, position);
|
49 | };
|
50 | FileHandle.prototype.readFile = function (options) {
|
51 | return promisify(this.vol, 'readFile')(this.fd, options);
|
52 | };
|
53 | FileHandle.prototype.stat = function (options) {
|
54 | return promisify(this.vol, 'fstat')(this.fd, options);
|
55 | };
|
56 | FileHandle.prototype.sync = function () {
|
57 | return promisify(this.vol, 'fsync')(this.fd);
|
58 | };
|
59 | FileHandle.prototype.truncate = function (len) {
|
60 | return promisify(this.vol, 'ftruncate')(this.fd, len);
|
61 | };
|
62 | FileHandle.prototype.utimes = function (atime, mtime) {
|
63 | return promisify(this.vol, 'futimes')(this.fd, atime, mtime);
|
64 | };
|
65 | FileHandle.prototype.write = function (buffer, offset, length, position) {
|
66 | return promisify(this.vol, 'write', function (bytesWritten) { return ({ bytesWritten: bytesWritten, buffer: buffer }); })(this.fd, buffer, offset, length, position);
|
67 | };
|
68 | FileHandle.prototype.writeFile = function (data, options) {
|
69 | return promisify(this.vol, 'writeFile')(this.fd, data, options);
|
70 | };
|
71 | return FileHandle;
|
72 | }());
|
73 | exports.FileHandle = FileHandle;
|
74 | function createPromisesApi(vol) {
|
75 | if (typeof Promise === 'undefined')
|
76 | return null;
|
77 | return {
|
78 | FileHandle: FileHandle,
|
79 | access: function (path, mode) {
|
80 | return promisify(vol, 'access')(path, mode);
|
81 | },
|
82 | appendFile: function (path, data, options) {
|
83 | return promisify(vol, 'appendFile')(path instanceof FileHandle ? path.fd : path, data, options);
|
84 | },
|
85 | chmod: function (path, mode) {
|
86 | return promisify(vol, 'chmod')(path, mode);
|
87 | },
|
88 | chown: function (path, uid, gid) {
|
89 | return promisify(vol, 'chown')(path, uid, gid);
|
90 | },
|
91 | copyFile: function (src, dest, flags) {
|
92 | return promisify(vol, 'copyFile')(src, dest, flags);
|
93 | },
|
94 | lchmod: function (path, mode) {
|
95 | return promisify(vol, 'lchmod')(path, mode);
|
96 | },
|
97 | lchown: function (path, uid, gid) {
|
98 | return promisify(vol, 'lchown')(path, uid, gid);
|
99 | },
|
100 | link: function (existingPath, newPath) {
|
101 | return promisify(vol, 'link')(existingPath, newPath);
|
102 | },
|
103 | lstat: function (path, options) {
|
104 | return promisify(vol, 'lstat')(path, options);
|
105 | },
|
106 | mkdir: function (path, options) {
|
107 | return promisify(vol, 'mkdir')(path, options);
|
108 | },
|
109 | mkdtemp: function (prefix, options) {
|
110 | return promisify(vol, 'mkdtemp')(prefix, options);
|
111 | },
|
112 | open: function (path, flags, mode) {
|
113 | return promisify(vol, 'open', function (fd) { return new FileHandle(vol, fd); })(path, flags, mode);
|
114 | },
|
115 | readdir: function (path, options) {
|
116 | return promisify(vol, 'readdir')(path, options);
|
117 | },
|
118 | readFile: function (id, options) {
|
119 | return promisify(vol, 'readFile')(id instanceof FileHandle ? id.fd : id, options);
|
120 | },
|
121 | readlink: function (path, options) {
|
122 | return promisify(vol, 'readlink')(path, options);
|
123 | },
|
124 | realpath: function (path, options) {
|
125 | return promisify(vol, 'realpath')(path, options);
|
126 | },
|
127 | rename: function (oldPath, newPath) {
|
128 | return promisify(vol, 'rename')(oldPath, newPath);
|
129 | },
|
130 | rmdir: function (path) {
|
131 | return promisify(vol, 'rmdir')(path);
|
132 | },
|
133 | stat: function (path, options) {
|
134 | return promisify(vol, 'stat')(path, options);
|
135 | },
|
136 | symlink: function (target, path, type) {
|
137 | return promisify(vol, 'symlink')(target, path, type);
|
138 | },
|
139 | truncate: function (path, len) {
|
140 | return promisify(vol, 'truncate')(path, len);
|
141 | },
|
142 | unlink: function (path) {
|
143 | return promisify(vol, 'unlink')(path);
|
144 | },
|
145 | utimes: function (path, atime, mtime) {
|
146 | return promisify(vol, 'utimes')(path, atime, mtime);
|
147 | },
|
148 | writeFile: function (id, data, options) {
|
149 | return promisify(vol, 'writeFile')(id instanceof FileHandle ? id.fd : id, data, options);
|
150 | },
|
151 | };
|
152 | }
|
153 | exports.default = createPromisesApi;
|