memfs 4.9.1 → 5.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Dirent.js +0 -1
- package/lib/Stats.js +0 -1
- package/lib/cas/types.js +0 -1
- package/lib/constants.js +0 -1
- package/lib/consts/AMODE.js +0 -1
- package/lib/consts/FLAG.js +0 -1
- package/lib/crud/types.js +0 -1
- package/lib/crud/util.js +0 -1
- package/lib/crud-to-cas/CrudCas.js +0 -1
- package/lib/crud-to-cas/CrudCasBase.js +1 -2
- package/lib/crud-to-cas/index.js +0 -1
- package/lib/crud-to-cas/util.js +0 -1
- package/lib/encoding.js +0 -1
- package/lib/fsa/types.js +0 -1
- package/lib/fsa-to-crud/FsaCrud.js +20 -65
- package/lib/fsa-to-crud/index.js +0 -1
- package/lib/fsa-to-crud/util.js +0 -1
- package/lib/fsa-to-node/FsaNodeCore.js +0 -1
- package/lib/fsa-to-node/FsaNodeDirent.js +0 -1
- package/lib/fsa-to-node/FsaNodeFs.js +16 -60
- package/lib/fsa-to-node/FsaNodeFsOpenFile.js +0 -1
- package/lib/fsa-to-node/FsaNodeReadStream.js +0 -1
- package/lib/fsa-to-node/FsaNodeStats.js +0 -1
- package/lib/fsa-to-node/FsaNodeWriteStream.js +2 -4
- package/lib/fsa-to-node/constants.js +0 -1
- package/lib/fsa-to-node/index.js +0 -1
- package/lib/fsa-to-node/json.js +0 -1
- package/lib/fsa-to-node/types.js +0 -1
- package/lib/fsa-to-node/util.js +1 -2
- package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.js +0 -1
- package/lib/fsa-to-node/worker/FsaNodeSyncWorker.js +3 -4
- package/lib/fsa-to-node/worker/SyncMessenger.js +1 -2
- package/lib/fsa-to-node/worker/constants.js +0 -1
- package/lib/fsa-to-node/worker/types.js +0 -1
- package/lib/index.js +1 -2
- package/lib/internal/buffer.js +0 -1
- package/lib/internal/errors.js +0 -1
- package/lib/node/FileHandle.js +0 -1
- package/lib/node/FsPromises.js +0 -1
- package/lib/node/constants.js +0 -1
- package/lib/node/lists/fsCallbackApiList.js +0 -1
- package/lib/node/lists/fsCommonObjectsList.js +0 -1
- package/lib/node/lists/fsSynchronousApiList.js +0 -1
- package/lib/node/options.js +0 -1
- package/lib/node/types/FsCallbackApi.js +0 -1
- package/lib/node/types/FsCommonObjects.js +0 -1
- package/lib/node/types/FsPromisesApi.js +0 -1
- package/lib/node/types/FsSynchronousApi.js +0 -1
- package/lib/node/types/index.js +0 -1
- package/lib/node/types/misc.js +0 -1
- package/lib/node/types/options.js +0 -1
- package/lib/node/util.js +0 -1
- package/lib/node-to-crud/NodeCrud.js +20 -52
- package/lib/node-to-crud/index.js +0 -1
- package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.js +21 -43
- package/lib/node-to-fsa/NodeFileSystemFileHandle.js +0 -1
- package/lib/node-to-fsa/NodeFileSystemHandle.js +0 -1
- package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.js +2 -5
- package/lib/node-to-fsa/NodeFileSystemWritableFileStream.js +0 -1
- package/lib/node-to-fsa/NodePermissionStatus.js +0 -1
- package/lib/node-to-fsa/index.js +0 -1
- package/lib/node-to-fsa/types.js +0 -1
- package/lib/node-to-fsa/util.js +6 -2
- package/lib/node.js +3 -4
- package/lib/print/index.js +1 -3
- package/lib/process.js +1 -2
- package/lib/queueMicrotask.js +0 -1
- package/lib/setImmediate.js +0 -1
- package/lib/setTimeoutUnref.js +0 -1
- package/lib/snapshot/async.js +0 -1
- package/lib/snapshot/binary.js +0 -1
- package/lib/snapshot/constants.js +0 -1
- package/lib/snapshot/index.js +0 -1
- package/lib/snapshot/json.js +0 -1
- package/lib/snapshot/shared.js +0 -1
- package/lib/snapshot/sync.js +0 -1
- package/lib/snapshot/types.js +0 -1
- package/lib/thingies/Defer.js +0 -1
- package/lib/thingies/concurrency.js +0 -1
- package/lib/thingies/go.js +0 -1
- package/lib/thingies/index.js +0 -1
- package/lib/thingies/of.js +0 -1
- package/lib/thingies/types.js +0 -1
- package/lib/volume-localstorage.js +0 -1
- package/lib/volume.js +7 -12
- package/lib/webfs/index.js +0 -1
- package/package.json +1 -1
- package/lib/Dirent.js.map +0 -1
- package/lib/Stats.js.map +0 -1
- package/lib/cas/types.js.map +0 -1
- package/lib/constants.js.map +0 -1
- package/lib/consts/AMODE.js.map +0 -1
- package/lib/consts/FLAG.js.map +0 -1
- package/lib/crud/types.js.map +0 -1
- package/lib/crud/util.js.map +0 -1
- package/lib/crud-to-cas/CrudCas.js.map +0 -1
- package/lib/crud-to-cas/CrudCasBase.js.map +0 -1
- package/lib/crud-to-cas/index.js.map +0 -1
- package/lib/crud-to-cas/util.js.map +0 -1
- package/lib/encoding.js.map +0 -1
- package/lib/fsa/types.js.map +0 -1
- package/lib/fsa-to-crud/FsaCrud.js.map +0 -1
- package/lib/fsa-to-crud/index.js.map +0 -1
- package/lib/fsa-to-crud/util.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeCore.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeDirent.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeFs.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeFsOpenFile.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeReadStream.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeStats.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeWriteStream.js.map +0 -1
- package/lib/fsa-to-node/constants.js.map +0 -1
- package/lib/fsa-to-node/index.js.map +0 -1
- package/lib/fsa-to-node/json.js.map +0 -1
- package/lib/fsa-to-node/types.js.map +0 -1
- package/lib/fsa-to-node/util.js.map +0 -1
- package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.js.map +0 -1
- package/lib/fsa-to-node/worker/FsaNodeSyncWorker.js.map +0 -1
- package/lib/fsa-to-node/worker/SyncMessenger.js.map +0 -1
- package/lib/fsa-to-node/worker/constants.js.map +0 -1
- package/lib/fsa-to-node/worker/types.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/internal/buffer.js.map +0 -1
- package/lib/internal/errors.js.map +0 -1
- package/lib/node/FileHandle.js.map +0 -1
- package/lib/node/FsPromises.js.map +0 -1
- package/lib/node/constants.js.map +0 -1
- package/lib/node/lists/fsCallbackApiList.js.map +0 -1
- package/lib/node/lists/fsCommonObjectsList.js.map +0 -1
- package/lib/node/lists/fsSynchronousApiList.js.map +0 -1
- package/lib/node/options.js.map +0 -1
- package/lib/node/types/FsCallbackApi.js.map +0 -1
- package/lib/node/types/FsCommonObjects.js.map +0 -1
- package/lib/node/types/FsPromisesApi.js.map +0 -1
- package/lib/node/types/FsSynchronousApi.js.map +0 -1
- package/lib/node/types/index.js.map +0 -1
- package/lib/node/types/misc.js.map +0 -1
- package/lib/node/types/options.js.map +0 -1
- package/lib/node/util.js.map +0 -1
- package/lib/node-to-crud/NodeCrud.js.map +0 -1
- package/lib/node-to-crud/index.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemFileHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemWritableFileStream.js.map +0 -1
- package/lib/node-to-fsa/NodePermissionStatus.js.map +0 -1
- package/lib/node-to-fsa/index.js.map +0 -1
- package/lib/node-to-fsa/types.js.map +0 -1
- package/lib/node-to-fsa/util.js.map +0 -1
- package/lib/node.js.map +0 -1
- package/lib/print/index.js.map +0 -1
- package/lib/process.js.map +0 -1
- package/lib/queueMicrotask.js.map +0 -1
- package/lib/setImmediate.js.map +0 -1
- package/lib/setTimeoutUnref.js.map +0 -1
- package/lib/snapshot/async.js.map +0 -1
- package/lib/snapshot/binary.js.map +0 -1
- package/lib/snapshot/constants.js.map +0 -1
- package/lib/snapshot/index.js.map +0 -1
- package/lib/snapshot/json.js.map +0 -1
- package/lib/snapshot/shared.js.map +0 -1
- package/lib/snapshot/sync.js.map +0 -1
- package/lib/snapshot/types.js.map +0 -1
- package/lib/thingies/Defer.js.map +0 -1
- package/lib/thingies/concurrency.js.map +0 -1
- package/lib/thingies/go.js.map +0 -1
- package/lib/thingies/index.js.map +0 -1
- package/lib/thingies/of.js.map +0 -1
- package/lib/thingies/types.js.map +0 -1
- package/lib/volume-localstorage.js.map +0 -1
- package/lib/volume.js.map +0 -1
- package/lib/webfs/index.js.map +0 -1
package/lib/Dirent.js
CHANGED
package/lib/Stats.js
CHANGED
package/lib/cas/types.js
CHANGED
package/lib/constants.js
CHANGED
package/lib/consts/AMODE.js
CHANGED
package/lib/consts/FLAG.js
CHANGED
package/lib/crud/types.js
CHANGED
package/lib/crud/util.js
CHANGED
|
@@ -32,7 +32,7 @@ class CrudCasBase {
|
|
|
32
32
|
const [collection, resource] = this.hash2Loc(hash);
|
|
33
33
|
return await normalizeErrors(async () => {
|
|
34
34
|
const blob = await this.crud.get(collection, resource);
|
|
35
|
-
if (!
|
|
35
|
+
if (!options?.skipVerification) {
|
|
36
36
|
const digest = await this.hash(blob);
|
|
37
37
|
if (!this.hashEqual(digest, hash))
|
|
38
38
|
throw new DOMException('Blob contents does not match hash', 'Integrity');
|
|
@@ -55,4 +55,3 @@ class CrudCasBase {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
exports.CrudCasBase = CrudCasBase;
|
|
58
|
-
//# sourceMappingURL=CrudCasBase.js.map
|
package/lib/crud-to-cas/index.js
CHANGED
|
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CrudCas = void 0;
|
|
4
4
|
var CrudCas_1 = require("./CrudCas");
|
|
5
5
|
Object.defineProperty(exports, "CrudCas", { enumerable: true, get: function () { return CrudCas_1.CrudCas; } });
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/lib/crud-to-cas/util.js
CHANGED
package/lib/encoding.js
CHANGED
package/lib/fsa/types.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FsaCrud = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const util_1 = require("../node-to-fsa/util");
|
|
6
5
|
const util_2 = require("../crud/util");
|
|
7
6
|
const util_3 = require("./util");
|
|
@@ -13,7 +12,7 @@ class FsaCrud {
|
|
|
13
12
|
(0, util_1.assertName)(id, 'put', 'crudfs');
|
|
14
13
|
const [dir] = await this.getDir(collection, true);
|
|
15
14
|
let file;
|
|
16
|
-
switch (options
|
|
15
|
+
switch (options?.throwIf) {
|
|
17
16
|
case 'exists': {
|
|
18
17
|
try {
|
|
19
18
|
file = await dir.getFileHandle(id, { create: false });
|
|
@@ -87,7 +86,6 @@ class FsaCrud {
|
|
|
87
86
|
}
|
|
88
87
|
};
|
|
89
88
|
this.drop = async (collection, silent) => {
|
|
90
|
-
var _a, e_1, _b, _c;
|
|
91
89
|
(0, util_2.assertType)(collection, 'drop', 'crudfs');
|
|
92
90
|
try {
|
|
93
91
|
const [dir, parent] = await this.getDir(collection, false);
|
|
@@ -96,21 +94,8 @@ class FsaCrud {
|
|
|
96
94
|
}
|
|
97
95
|
else {
|
|
98
96
|
const root = await this.root;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
_c = _f.value;
|
|
102
|
-
_d = false;
|
|
103
|
-
const name = _c;
|
|
104
|
-
await root.removeEntry(name, { recursive: true });
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
108
|
-
finally {
|
|
109
|
-
try {
|
|
110
|
-
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
111
|
-
}
|
|
112
|
-
finally { if (e_1) throw e_1.error; }
|
|
113
|
-
}
|
|
97
|
+
for await (const name of root.keys())
|
|
98
|
+
await root.removeEntry(name, { recursive: true });
|
|
114
99
|
}
|
|
115
100
|
}
|
|
116
101
|
catch (error) {
|
|
@@ -118,57 +103,28 @@ class FsaCrud {
|
|
|
118
103
|
throw error;
|
|
119
104
|
}
|
|
120
105
|
};
|
|
121
|
-
this.scan = function (collection) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const [id, handle] = _c;
|
|
131
|
-
if (handle.kind === 'file') {
|
|
132
|
-
yield yield tslib_1.__await({
|
|
133
|
-
type: 'resource',
|
|
134
|
-
id,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
else if (handle.kind === 'directory') {
|
|
138
|
-
yield yield tslib_1.__await({
|
|
139
|
-
type: 'collection',
|
|
140
|
-
id,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
106
|
+
this.scan = async function* (collection) {
|
|
107
|
+
(0, util_2.assertType)(collection, 'scan', 'crudfs');
|
|
108
|
+
const [dir] = await this.getDir(collection, false);
|
|
109
|
+
for await (const [id, handle] of dir.entries()) {
|
|
110
|
+
if (handle.kind === 'file') {
|
|
111
|
+
yield {
|
|
112
|
+
type: 'resource',
|
|
113
|
+
id,
|
|
114
|
+
};
|
|
144
115
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
finally { if (e_2) throw e_2.error; }
|
|
116
|
+
else if (handle.kind === 'directory') {
|
|
117
|
+
yield {
|
|
118
|
+
type: 'collection',
|
|
119
|
+
id,
|
|
120
|
+
};
|
|
151
121
|
}
|
|
152
|
-
}
|
|
122
|
+
}
|
|
153
123
|
};
|
|
154
124
|
this.list = async (collection) => {
|
|
155
|
-
var _a, e_3, _b, _c;
|
|
156
125
|
const entries = [];
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
_c = _f.value;
|
|
160
|
-
_d = false;
|
|
161
|
-
const entry = _c;
|
|
162
|
-
entries.push(entry);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
166
|
-
finally {
|
|
167
|
-
try {
|
|
168
|
-
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
169
|
-
}
|
|
170
|
-
finally { if (e_3) throw e_3.error; }
|
|
171
|
-
}
|
|
126
|
+
for await (const entry of this.scan(collection))
|
|
127
|
+
entries.push(entry);
|
|
172
128
|
return entries;
|
|
173
129
|
};
|
|
174
130
|
this.from = async (collection) => {
|
|
@@ -208,4 +164,3 @@ class FsaCrud {
|
|
|
208
164
|
}
|
|
209
165
|
}
|
|
210
166
|
exports.FsaCrud = FsaCrud;
|
|
211
|
-
//# sourceMappingURL=FsaCrud.js.map
|
package/lib/fsa-to-crud/index.js
CHANGED
|
@@ -3,4 +3,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FsaCrud = void 0;
|
|
4
4
|
var FsaCrud_1 = require("./FsaCrud");
|
|
5
5
|
Object.defineProperty(exports, "FsaCrud", { enumerable: true, get: function () { return FsaCrud_1.FsaCrud; } });
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/lib/fsa-to-crud/util.js
CHANGED
|
@@ -9,4 +9,3 @@ const newExistsError = () => new DOMException('Resource already exists', 'Exists
|
|
|
9
9
|
exports.newExistsError = newExistsError;
|
|
10
10
|
const newMissingError = () => new DOMException('Resource is missing', 'Missing');
|
|
11
11
|
exports.newMissingError = newMissingError;
|
|
12
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FsaNodeFs = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const optHelpers = require("../node/options");
|
|
6
5
|
const util = require("../node/util");
|
|
7
6
|
const buffer_1 = require("../internal/buffer");
|
|
@@ -92,7 +91,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
92
91
|
if (idWasFd)
|
|
93
92
|
await this.__close(originalFd);
|
|
94
93
|
}
|
|
95
|
-
catch
|
|
94
|
+
catch { }
|
|
96
95
|
}
|
|
97
96
|
})()
|
|
98
97
|
.then(data => callback(null, data))
|
|
@@ -163,7 +162,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
163
162
|
if (idWasFd)
|
|
164
163
|
await this.__close(originalFd);
|
|
165
164
|
}
|
|
166
|
-
catch
|
|
165
|
+
catch { }
|
|
167
166
|
}
|
|
168
167
|
})().then(() => cb(null), error => cb(error));
|
|
169
168
|
};
|
|
@@ -295,7 +294,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
295
294
|
const writable = await file.createWritable();
|
|
296
295
|
await writable.close();
|
|
297
296
|
}
|
|
298
|
-
catch
|
|
297
|
+
catch {
|
|
299
298
|
throw util.createError('EACCESS', 'access', filename);
|
|
300
299
|
}
|
|
301
300
|
}
|
|
@@ -340,24 +339,11 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
340
339
|
folder.push(name);
|
|
341
340
|
this.getDir(folder, false, 'readdir')
|
|
342
341
|
.then(dir => (async () => {
|
|
343
|
-
var _a, e_1, _b, _c, _d, e_2, _e, _f;
|
|
344
342
|
if (options.withFileTypes) {
|
|
345
343
|
const list = [];
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
_g = false;
|
|
350
|
-
const [name, handle] = _c;
|
|
351
|
-
const dirent = new FsaNodeDirent_1.FsaNodeDirent(name, handle.kind);
|
|
352
|
-
list.push(dirent);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
356
|
-
finally {
|
|
357
|
-
try {
|
|
358
|
-
if (!_g && !_a && (_b = _h.return)) await _b.call(_h);
|
|
359
|
-
}
|
|
360
|
-
finally { if (e_1) throw e_1.error; }
|
|
344
|
+
for await (const [name, handle] of dir.entries()) {
|
|
345
|
+
const dirent = new FsaNodeDirent_1.FsaNodeDirent(name, handle.kind);
|
|
346
|
+
list.push(dirent);
|
|
361
347
|
}
|
|
362
348
|
if (!util.isWin && options.encoding !== 'buffer')
|
|
363
349
|
list.sort((a, b) => {
|
|
@@ -371,21 +357,8 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
371
357
|
}
|
|
372
358
|
else {
|
|
373
359
|
const list = [];
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
_f = _m.value;
|
|
377
|
-
_k = false;
|
|
378
|
-
const key = _f;
|
|
379
|
-
list.push(key);
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
383
|
-
finally {
|
|
384
|
-
try {
|
|
385
|
-
if (!_k && !_d && (_e = _l.return)) await _e.call(_l);
|
|
386
|
-
}
|
|
387
|
-
finally { if (e_2) throw e_2.error; }
|
|
388
|
-
}
|
|
360
|
+
for await (const key of dir.keys())
|
|
361
|
+
list.push(key);
|
|
389
362
|
if (!util.isWin && options.encoding !== 'buffer')
|
|
390
363
|
list.sort();
|
|
391
364
|
return list;
|
|
@@ -437,14 +410,13 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
437
410
|
callback(null);
|
|
438
411
|
};
|
|
439
412
|
this.mkdir = (path, a, b) => {
|
|
440
|
-
var _a;
|
|
441
413
|
const opts = optHelpers.getMkdirOptions(a);
|
|
442
414
|
const callback = util.validateCallback(typeof a === 'function' ? a : b);
|
|
443
415
|
// const modeNum = modeToNumber(opts.mode, 0o777);
|
|
444
416
|
const filename = util.pathToFilename(path);
|
|
445
417
|
const [folder, name] = (0, util_1.pathToLocation)(filename);
|
|
446
418
|
// TODO: need to throw if directory already exists
|
|
447
|
-
this.getDir(folder,
|
|
419
|
+
this.getDir(folder, opts.recursive ?? false)
|
|
448
420
|
.then(dir => dir.getDirectoryHandle(name, { create: true }))
|
|
449
421
|
.then(() => callback(null), error => {
|
|
450
422
|
if (error && typeof error === 'object') {
|
|
@@ -481,7 +453,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
481
453
|
return this.rmAll(callback);
|
|
482
454
|
this.getDir(folder, false, 'rmdir')
|
|
483
455
|
.then(dir => dir.getDirectoryHandle(name).then(() => dir))
|
|
484
|
-
.then(dir =>
|
|
456
|
+
.then(dir => dir.removeEntry(name, { recursive: options.recursive ?? false }))
|
|
485
457
|
.then(() => callback(null), error => {
|
|
486
458
|
if (error && typeof error === 'object') {
|
|
487
459
|
switch (error.name) {
|
|
@@ -506,7 +478,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
506
478
|
if (!name && options.recursive)
|
|
507
479
|
return this.rmAll(callback);
|
|
508
480
|
this.getDir(folder, false, 'rmdir')
|
|
509
|
-
.then(dir =>
|
|
481
|
+
.then(dir => dir.removeEntry(name, { recursive: options.recursive ?? false }))
|
|
510
482
|
.then(() => callback(null), error => {
|
|
511
483
|
if (options.force) {
|
|
512
484
|
callback(null);
|
|
@@ -548,7 +520,6 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
548
520
|
callback(null);
|
|
549
521
|
};
|
|
550
522
|
this.createWriteStream = (path, options) => {
|
|
551
|
-
var _a;
|
|
552
523
|
const defaults = {
|
|
553
524
|
encoding: 'utf8',
|
|
554
525
|
flags: 'w',
|
|
@@ -557,7 +528,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
557
528
|
};
|
|
558
529
|
const optionsObj = optHelpers.getOptions(defaults, options);
|
|
559
530
|
const filename = util.pathToFilename(path);
|
|
560
|
-
const flags = util.flagsToNumber(
|
|
531
|
+
const flags = util.flagsToNumber(optionsObj.flags ?? 'w');
|
|
561
532
|
const fd = optionsObj.fd ? (typeof optionsObj.fd === 'number' ? optionsObj.fd : optionsObj.fd.fd) : 0;
|
|
562
533
|
const handle = fd ? this.getFileByFdAsync(fd) : this.__open(filename, flags, 0);
|
|
563
534
|
const stream = new FsaNodeWriteStream_1.FsaNodeWriteStream(handle, filename, optionsObj);
|
|
@@ -610,13 +581,12 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
610
581
|
this.link = notSupported;
|
|
611
582
|
// --------------------------------------------------------- FsSynchronousApi
|
|
612
583
|
this.statSync = (path, options) => {
|
|
613
|
-
var _a;
|
|
614
584
|
const { bigint = true, throwIfNoEntry = true } = optHelpers.getStatOptions(options);
|
|
615
585
|
const filename = util.pathToFilename(path);
|
|
616
586
|
const location = (0, util_1.pathToLocation)(filename);
|
|
617
587
|
const adapter = this.getSyncAdapter();
|
|
618
588
|
const res = adapter.call('stat', location);
|
|
619
|
-
const stats = new FsaNodeStats_1.FsaNodeStats(bigint,
|
|
589
|
+
const stats = new FsaNodeStats_1.FsaNodeStats(bigint, res.size ?? 0, res.kind);
|
|
620
590
|
return stats;
|
|
621
591
|
};
|
|
622
592
|
this.lstatSync = this.statSync;
|
|
@@ -669,7 +639,7 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
669
639
|
this.statSync(path);
|
|
670
640
|
return true;
|
|
671
641
|
}
|
|
672
|
-
catch
|
|
642
|
+
catch {
|
|
673
643
|
return false;
|
|
674
644
|
}
|
|
675
645
|
};
|
|
@@ -832,25 +802,11 @@ class FsaNodeFs extends FsaNodeCore_1.FsaNodeCore {
|
|
|
832
802
|
}
|
|
833
803
|
rmAll(callback) {
|
|
834
804
|
(async () => {
|
|
835
|
-
var _a, e_3, _b, _c;
|
|
836
805
|
const root = await this.root;
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
_c = _f.value;
|
|
840
|
-
_d = false;
|
|
841
|
-
const name = _c;
|
|
842
|
-
await root.removeEntry(name, { recursive: true });
|
|
843
|
-
}
|
|
844
|
-
}
|
|
845
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
846
|
-
finally {
|
|
847
|
-
try {
|
|
848
|
-
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
849
|
-
}
|
|
850
|
-
finally { if (e_3) throw e_3.error; }
|
|
806
|
+
for await (const name of root.keys()) {
|
|
807
|
+
await root.removeEntry(name, { recursive: true });
|
|
851
808
|
}
|
|
852
809
|
})().then(() => callback(null), error => callback(error));
|
|
853
810
|
}
|
|
854
811
|
}
|
|
855
812
|
exports.FsaNodeFs = FsaNodeFs;
|
|
856
|
-
//# sourceMappingURL=FsaNodeFs.js.map
|
|
@@ -47,16 +47,15 @@ class FsaNodeWriteStream extends stream_1.Writable {
|
|
|
47
47
|
const stream = new Defer_1.Defer();
|
|
48
48
|
this.__stream__ = stream.promise;
|
|
49
49
|
(async () => {
|
|
50
|
-
var _a, _b;
|
|
51
50
|
const fsaHandle = await handle;
|
|
52
51
|
const fileWasOpened = !options.fd;
|
|
53
52
|
if (fileWasOpened)
|
|
54
53
|
this.emit('open', fsaHandle.fd);
|
|
55
|
-
const flags = (0, util_1.flagsToNumber)(
|
|
54
|
+
const flags = (0, util_1.flagsToNumber)(options.flags ?? 'w');
|
|
56
55
|
const keepExistingData = flags & 1024 /* FLAG.O_APPEND */ ? true : false;
|
|
57
56
|
const writable = await fsaHandle.file.createWritable({ keepExistingData });
|
|
58
57
|
if (keepExistingData) {
|
|
59
|
-
const start = Number(
|
|
58
|
+
const start = Number(options.start ?? 0);
|
|
60
59
|
if (start)
|
|
61
60
|
await writable.seek(start);
|
|
62
61
|
}
|
|
@@ -148,4 +147,3 @@ class FsaNodeWriteStream extends stream_1.Writable {
|
|
|
148
147
|
}
|
|
149
148
|
}
|
|
150
149
|
exports.FsaNodeWriteStream = FsaNodeWriteStream;
|
|
151
|
-
//# sourceMappingURL=FsaNodeWriteStream.js.map
|
package/lib/fsa-to-node/index.js
CHANGED
|
@@ -5,4 +5,3 @@ var FsaNodeFs_1 = require("./FsaNodeFs");
|
|
|
5
5
|
Object.defineProperty(exports, "FsaNodeFs", { enumerable: true, get: function () { return FsaNodeFs_1.FsaNodeFs; } });
|
|
6
6
|
var FsaNodeSyncAdapterWorker_1 = require("./worker/FsaNodeSyncAdapterWorker");
|
|
7
7
|
Object.defineProperty(exports, "FsaNodeSyncAdapterWorker", { enumerable: true, get: function () { return FsaNodeSyncAdapterWorker_1.FsaNodeSyncAdapterWorker; } });
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/lib/fsa-to-node/json.js
CHANGED
|
@@ -5,4 +5,3 @@ const CborEncoder_1 = require("@jsonjoy.com/json-pack/lib/cbor/CborEncoder");
|
|
|
5
5
|
const CborDecoder_1 = require("@jsonjoy.com/json-pack/lib/cbor/CborDecoder");
|
|
6
6
|
exports.encoder = new CborEncoder_1.CborEncoder();
|
|
7
7
|
exports.decoder = new CborDecoder_1.CborDecoder();
|
|
8
|
-
//# sourceMappingURL=json.js.map
|
package/lib/fsa-to-node/types.js
CHANGED
package/lib/fsa-to-node/util.js
CHANGED
|
@@ -20,7 +20,7 @@ const testDirectoryIsWritable = async (dir) => {
|
|
|
20
20
|
await dir.getFileHandle(testFileName, { create: true });
|
|
21
21
|
return true;
|
|
22
22
|
}
|
|
23
|
-
catch
|
|
23
|
+
catch {
|
|
24
24
|
return false;
|
|
25
25
|
}
|
|
26
26
|
finally {
|
|
@@ -31,4 +31,3 @@ const testDirectoryIsWritable = async (dir) => {
|
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
exports.testDirectoryIsWritable = testDirectoryIsWritable;
|
|
34
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -55,15 +55,15 @@ class FsaNodeSyncWorker {
|
|
|
55
55
|
await this.fs.promises.access(filename, mode);
|
|
56
56
|
},
|
|
57
57
|
readFile: async ([filename, opts]) => {
|
|
58
|
-
const buf = (await this.fs.promises.readFile(filename,
|
|
58
|
+
const buf = (await this.fs.promises.readFile(filename, { ...opts, encoding: 'buffer' }));
|
|
59
59
|
const uint8 = new Uint8Array(buf, buf.byteOffset, buf.byteLength);
|
|
60
60
|
return uint8;
|
|
61
61
|
},
|
|
62
62
|
writeFile: async ([filename, data, opts]) => {
|
|
63
|
-
await this.fs.promises.writeFile(filename, data,
|
|
63
|
+
await this.fs.promises.writeFile(filename, data, { ...opts, encoding: 'buffer' });
|
|
64
64
|
},
|
|
65
65
|
appendFile: async ([filename, data, opts]) => {
|
|
66
|
-
await this.fs.promises.appendFile(filename, data,
|
|
66
|
+
await this.fs.promises.appendFile(filename, data, { ...opts, encoding: 'buffer' });
|
|
67
67
|
},
|
|
68
68
|
copy: async ([src, dst, flags]) => {
|
|
69
69
|
await this.fs.promises.copyFile(src, dst, flags);
|
|
@@ -173,4 +173,3 @@ class FsaNodeSyncWorker {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
exports.FsaNodeSyncWorker = FsaNodeSyncWorker;
|
|
176
|
-
//# sourceMappingURL=FsaNodeSyncWorker.js.map
|
|
@@ -63,10 +63,9 @@ class SyncMessenger {
|
|
|
63
63
|
this.uint8.set(response, headerSize);
|
|
64
64
|
int32[1] = 1;
|
|
65
65
|
}
|
|
66
|
-
catch
|
|
66
|
+
catch { }
|
|
67
67
|
this.serveAsync(callback);
|
|
68
68
|
})().catch(() => { });
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
exports.SyncMessenger = SyncMessenger;
|
|
72
|
-
//# sourceMappingURL=SyncMessenger.js.map
|
package/lib/index.js
CHANGED
|
@@ -47,6 +47,5 @@ const memfs = (json = {}, cwd = '/') => {
|
|
|
47
47
|
return { fs, vol };
|
|
48
48
|
};
|
|
49
49
|
exports.memfs = memfs;
|
|
50
|
-
module.exports =
|
|
50
|
+
module.exports = { ...module.exports, ...exports.fs };
|
|
51
51
|
module.exports.semantic = true;
|
|
52
|
-
//# sourceMappingURL=index.js.map
|
package/lib/internal/buffer.js
CHANGED
package/lib/internal/errors.js
CHANGED
package/lib/node/FileHandle.js
CHANGED
package/lib/node/FsPromises.js
CHANGED
package/lib/node/constants.js
CHANGED
package/lib/node/options.js
CHANGED