memfs 4.49.0 → 4.51.0
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/README.md +1 -1
- package/lib/core/Node.d.ts +14 -0
- package/lib/core/Node.js +71 -31
- package/lib/core/Node.js.map +1 -1
- package/lib/print/index.d.ts +1 -0
- package/lib/print/index.js +17 -0
- package/lib/print/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[npm-url]: https://www.npmjs.com/package/memfs
|
|
6
6
|
[npm-badge]: https://img.shields.io/npm/v/memfs.svg
|
|
7
7
|
|
|
8
|
-
JavaScript file system utilities for Node.js and browser.
|
|
8
|
+
JavaScript file system utilities for Node.js and browser. Implementation of in-memory [Node.js `fs` module API](https://nodejs.org/api/fs.html) and in-memory [browser File System API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API), as well as adapters from `fs` module to File Sytem API and from File Sytem API to `fs` module.
|
|
9
9
|
|
|
10
10
|
## Install
|
|
11
11
|
|
package/lib/core/Node.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export declare class Node {
|
|
|
15
15
|
private _mtime;
|
|
16
16
|
private _ctime;
|
|
17
17
|
buf: Buffer;
|
|
18
|
+
/** Total allocated memory capacity for this node. */
|
|
19
|
+
private capacity;
|
|
20
|
+
/** Actually used bytes to store content. */
|
|
21
|
+
private size;
|
|
18
22
|
rdev: number;
|
|
19
23
|
mode: number;
|
|
20
24
|
private _nlink;
|
|
@@ -38,6 +42,7 @@ export declare class Node {
|
|
|
38
42
|
setString(str: string): void;
|
|
39
43
|
getBuffer(): Buffer;
|
|
40
44
|
setBuffer(buf: Buffer): void;
|
|
45
|
+
private _setBuf;
|
|
41
46
|
getSize(): number;
|
|
42
47
|
setModeProperty(property: number): void;
|
|
43
48
|
isFile(): boolean;
|
|
@@ -46,6 +51,15 @@ export declare class Node {
|
|
|
46
51
|
isCharacterDevice(): boolean;
|
|
47
52
|
makeSymlink(symlink: string): void;
|
|
48
53
|
write(buf: Buffer, off?: number, len?: number, pos?: number): number;
|
|
54
|
+
/**
|
|
55
|
+
* Read data from the file.
|
|
56
|
+
*
|
|
57
|
+
* @param buf Buffer to read data into.
|
|
58
|
+
* @param off Offset int the `buf` where to start writing data.
|
|
59
|
+
* @param len How many bytes to read. Equals to `buf.byteLength` by default.
|
|
60
|
+
* @param pos Position offset in file where to start reading. Defaults to `0`.
|
|
61
|
+
* @returns Returns the number of bytes read.
|
|
62
|
+
*/
|
|
49
63
|
read(buf: Buffer | ArrayBufferView | DataView, off?: number, len?: number, pos?: number): number;
|
|
50
64
|
truncate(len?: number): void;
|
|
51
65
|
chmod(perm: number): void;
|
package/lib/core/Node.js
CHANGED
|
@@ -8,6 +8,7 @@ const constants_1 = require("../constants");
|
|
|
8
8
|
const { S_IFMT, S_IFDIR, S_IFREG, S_IFLNK, S_IFCHR } = constants_1.constants;
|
|
9
9
|
const getuid = () => process_1.default.getuid?.() ?? 0;
|
|
10
10
|
const getgid = () => process_1.default.getgid?.() ?? 0;
|
|
11
|
+
const EMPTY_BUFFER = (0, buffer_1.bufferAllocUnsafe)(0);
|
|
11
12
|
/**
|
|
12
13
|
* Node in a file system (like i-node, v-node).
|
|
13
14
|
*/
|
|
@@ -20,6 +21,11 @@ class Node {
|
|
|
20
21
|
this._atime = new Date();
|
|
21
22
|
this._mtime = new Date();
|
|
22
23
|
this._ctime = new Date();
|
|
24
|
+
this.buf = EMPTY_BUFFER;
|
|
25
|
+
/** Total allocated memory capacity for this node. */
|
|
26
|
+
this.capacity = 0;
|
|
27
|
+
/** Actually used bytes to store content. */
|
|
28
|
+
this.size = 0;
|
|
23
29
|
this.rdev = 0;
|
|
24
30
|
// Number of hard links pointing at this Node.
|
|
25
31
|
this._nlink = 1;
|
|
@@ -78,22 +84,27 @@ class Node {
|
|
|
78
84
|
return this.getBuffer().toString(encoding);
|
|
79
85
|
}
|
|
80
86
|
setString(str) {
|
|
81
|
-
|
|
82
|
-
this.buf = (0, buffer_1.bufferFrom)(str, 'utf8');
|
|
83
|
-
this.touch();
|
|
87
|
+
this._setBuf((0, buffer_1.bufferFrom)(str, 'utf8'));
|
|
84
88
|
}
|
|
85
89
|
getBuffer() {
|
|
86
90
|
this.atime = new Date();
|
|
87
91
|
if (!this.buf)
|
|
88
92
|
this.buf = (0, buffer_1.bufferAllocUnsafe)(0);
|
|
89
|
-
return (0, buffer_1.bufferFrom)(this.buf); // Return a copy.
|
|
93
|
+
return (0, buffer_1.bufferFrom)(this.buf.subarray(0, this.size)); // Return a copy of used portion.
|
|
90
94
|
}
|
|
91
95
|
setBuffer(buf) {
|
|
92
|
-
|
|
96
|
+
const copy = (0, buffer_1.bufferFrom)(buf); // Creates a copy of data.
|
|
97
|
+
this._setBuf(copy);
|
|
98
|
+
}
|
|
99
|
+
_setBuf(buf) {
|
|
100
|
+
const size = buf.length;
|
|
101
|
+
this.buf = buf;
|
|
102
|
+
this.capacity = size;
|
|
103
|
+
this.size = size;
|
|
93
104
|
this.touch();
|
|
94
105
|
}
|
|
95
106
|
getSize() {
|
|
96
|
-
return this.
|
|
107
|
+
return this.size;
|
|
97
108
|
}
|
|
98
109
|
setModeProperty(property) {
|
|
99
110
|
this.mode = property;
|
|
@@ -116,50 +127,79 @@ class Node {
|
|
|
116
127
|
this.symlink = symlink;
|
|
117
128
|
}
|
|
118
129
|
write(buf, off = 0, len = buf.length, pos = 0) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
130
|
+
const bufLength = buf.length;
|
|
131
|
+
if (off + len > bufLength)
|
|
132
|
+
len = bufLength - off;
|
|
133
|
+
if (len <= 0)
|
|
134
|
+
return 0;
|
|
135
|
+
const requiredSize = pos + len;
|
|
136
|
+
if (requiredSize > this.capacity) {
|
|
137
|
+
let newCapacity = Math.max(this.capacity * 2, 64);
|
|
138
|
+
while (newCapacity < requiredSize)
|
|
139
|
+
newCapacity *= 2;
|
|
140
|
+
const newBuf = (0, buffer_1.bufferAllocUnsafe)(newCapacity);
|
|
141
|
+
if (this.size > 0)
|
|
142
|
+
this.buf.copy(newBuf, 0, 0, this.size);
|
|
124
143
|
this.buf = newBuf;
|
|
144
|
+
this.capacity = newCapacity;
|
|
125
145
|
}
|
|
146
|
+
if (pos > this.size)
|
|
147
|
+
this.buf.fill(0, this.size, pos);
|
|
126
148
|
buf.copy(this.buf, pos, off, off + len);
|
|
149
|
+
if (requiredSize > this.size)
|
|
150
|
+
this.size = requiredSize;
|
|
127
151
|
this.touch();
|
|
128
152
|
return len;
|
|
129
153
|
}
|
|
130
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Read data from the file.
|
|
156
|
+
*
|
|
157
|
+
* @param buf Buffer to read data into.
|
|
158
|
+
* @param off Offset int the `buf` where to start writing data.
|
|
159
|
+
* @param len How many bytes to read. Equals to `buf.byteLength` by default.
|
|
160
|
+
* @param pos Position offset in file where to start reading. Defaults to `0`.
|
|
161
|
+
* @returns Returns the number of bytes read.
|
|
162
|
+
*/
|
|
131
163
|
read(buf, off = 0, len = buf.byteLength, pos = 0) {
|
|
132
164
|
this.atime = new Date();
|
|
133
|
-
if (
|
|
134
|
-
this.buf = (0, buffer_1.bufferAllocUnsafe)(0);
|
|
135
|
-
if (pos >= this.buf.length)
|
|
165
|
+
if (pos >= this.size)
|
|
136
166
|
return 0;
|
|
137
167
|
let actualLen = len;
|
|
138
|
-
if (actualLen > buf.byteLength)
|
|
168
|
+
if (actualLen > buf.byteLength)
|
|
139
169
|
actualLen = buf.byteLength;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
170
|
+
if (actualLen + pos > this.size)
|
|
171
|
+
actualLen = this.size - pos;
|
|
172
|
+
if (actualLen <= 0)
|
|
173
|
+
return 0;
|
|
144
174
|
const buf2 = buf instanceof buffer_1.Buffer ? buf : buffer_1.Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
145
175
|
this.buf.copy(buf2, off, pos, pos + actualLen);
|
|
146
176
|
return actualLen;
|
|
147
177
|
}
|
|
148
178
|
truncate(len = 0) {
|
|
149
|
-
if (!len)
|
|
150
|
-
this.buf =
|
|
179
|
+
if (!len) {
|
|
180
|
+
this.buf = EMPTY_BUFFER;
|
|
181
|
+
this.capacity = 0;
|
|
182
|
+
this.size = 0;
|
|
183
|
+
this.touch();
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (len <= this.size)
|
|
187
|
+
this.size = len;
|
|
151
188
|
else {
|
|
152
|
-
if (
|
|
153
|
-
this.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
buf.fill(0, this.buf.length);
|
|
189
|
+
if (len > this.capacity) {
|
|
190
|
+
let newCapacity = Math.max(this.capacity * 2, 64);
|
|
191
|
+
while (newCapacity < len)
|
|
192
|
+
newCapacity *= 2;
|
|
193
|
+
const buf = (0, buffer_1.bufferAllocUnsafe)(newCapacity);
|
|
194
|
+
if (this.size > 0)
|
|
195
|
+
this.buf.copy(buf, 0, 0, this.size);
|
|
196
|
+
buf.fill(0, this.size, len);
|
|
161
197
|
this.buf = buf;
|
|
198
|
+
this.capacity = newCapacity;
|
|
162
199
|
}
|
|
200
|
+
else
|
|
201
|
+
this.buf.fill(0, this.size, len);
|
|
202
|
+
this.size = len;
|
|
163
203
|
}
|
|
164
204
|
this.touch();
|
|
165
205
|
}
|
package/lib/core/Node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/core/Node.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAC7C,wCAAiC;AACjC,2DAAuF;AACvF,4CAA4C;AAQ5C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,qBAAS,CAAC;AACjE,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,iBAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;AACrD,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,iBAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/core/Node.ts"],"names":[],"mappings":"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"}
|
package/lib/print/index.d.ts
CHANGED
package/lib/print/index.js
CHANGED
|
@@ -10,9 +10,26 @@ const toTreeSync = (fs, opts = {}) => {
|
|
|
10
10
|
dir += separator;
|
|
11
11
|
const tab = opts.tab || '';
|
|
12
12
|
const depth = opts.depth ?? 10;
|
|
13
|
+
const sort = opts.sort ?? true;
|
|
13
14
|
let subtree = ' (...)';
|
|
14
15
|
if (depth > 0) {
|
|
15
16
|
const list = fs.readdirSync(dir, { withFileTypes: true });
|
|
17
|
+
if (sort) {
|
|
18
|
+
list.sort((a, b) => {
|
|
19
|
+
if (a.isDirectory() && b.isDirectory()) {
|
|
20
|
+
return a.name.toString().localeCompare(b.name.toString());
|
|
21
|
+
}
|
|
22
|
+
else if (a.isDirectory()) {
|
|
23
|
+
return -1;
|
|
24
|
+
}
|
|
25
|
+
else if (b.isDirectory()) {
|
|
26
|
+
return 1;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return a.name.toString().localeCompare(b.name.toString());
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
16
33
|
subtree = (0, tree_dump_1.printTree)(tab, list.map(entry => tab => {
|
|
17
34
|
if (entry.isDirectory()) {
|
|
18
35
|
return (0, exports.toTreeSync)(fs, { dir: dir + entry.name, depth: depth - 1, tab });
|
package/lib/print/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/print/index.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AACtC,8CAA+C;AAIxC,MAAM,UAAU,GAAG,CAAC,EAAoB,EAAE,OAAsB,EAAE,EAAE,EAAE;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;IACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC;IAChC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;QAAE,GAAG,IAAI,SAAS,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAc,CAAC;QACvE,OAAO,GAAG,IAAA,qBAAS,EACjB,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO,IAAA,kBAAU,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAClC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,GAAG,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;IAClD,OAAO,IAAI,GAAG,OAAO,CAAC;AACxB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/print/index.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AACtC,8CAA+C;AAIxC,MAAM,UAAU,GAAG,CAAC,EAAoB,EAAE,OAAsB,EAAE,EAAE,EAAE;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;IACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC;IAChC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;QAAE,GAAG,IAAI,SAAS,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC/B,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAc,CAAC;QACvE,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC3B,OAAO,CAAC,CAAC,CAAC;gBACZ,CAAC;qBAAM,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC3B,OAAO,CAAC,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,IAAA,qBAAS,EACjB,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO,IAAA,kBAAU,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAClC,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,eAAQ,EAAC,GAAG,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;IAClD,OAAO,IAAI,GAAG,OAAO,CAAC;AACxB,CAAC,CAAC;AAtCW,QAAA,UAAU,cAsCrB"}
|