memfs 4.48.1 → 4.50.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
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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"}
|
|
@@ -43,6 +43,8 @@ class FsaNodeReadStream extends stream_1.Readable {
|
|
|
43
43
|
let end = typeof this.options.end === 'number' ? this.options.end + 1 : buffer.byteLength;
|
|
44
44
|
if (end > buffer.byteLength)
|
|
45
45
|
end = buffer.byteLength;
|
|
46
|
+
if (start >= buffer.byteLength)
|
|
47
|
+
return new Uint8Array(0);
|
|
46
48
|
const uint8 = new Uint8Array(buffer, start, end - start);
|
|
47
49
|
return uint8;
|
|
48
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FsaNodeReadStream.js","sourceRoot":"","sources":["../../src/fsa-to-node/FsaNodeReadStream.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FsaNodeReadStream.js","sourceRoot":"","sources":["../../src/fsa-to-node/FsaNodeReadStream.ts"],"names":[],"mappings":"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"}
|