@zenfs/core 1.8.1 → 1.8.2
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/dist/devices.d.ts +2 -2
- package/dist/devices.js +4 -27
- package/dist/utils.js +11 -4
- package/package.json +1 -1
package/dist/devices.d.ts
CHANGED
|
@@ -69,7 +69,7 @@ export interface DeviceDriver<TData = any> {
|
|
|
69
69
|
* @deprecated
|
|
70
70
|
* @todo [BREAKING] Remove
|
|
71
71
|
*/
|
|
72
|
-
read(file: DeviceFile<TData>, buffer: ArrayBufferView, offset?: number, length?: number, position?: number): number;
|
|
72
|
+
read?(file: DeviceFile<TData>, buffer: ArrayBufferView, offset?: number, length?: number, position?: number): number;
|
|
73
73
|
/**
|
|
74
74
|
* Synchronously read from a device.
|
|
75
75
|
* @privateRemarks
|
|
@@ -85,7 +85,7 @@ export interface DeviceDriver<TData = any> {
|
|
|
85
85
|
* @deprecated
|
|
86
86
|
* @todo [BREAKING] Remove
|
|
87
87
|
*/
|
|
88
|
-
write(file: DeviceFile<TData>, buffer: Uint8Array, offset: number, length: number, position?: number): number;
|
|
88
|
+
write?(file: DeviceFile<TData>, buffer: Uint8Array, offset: number, length: number, position?: number): number;
|
|
89
89
|
/**
|
|
90
90
|
* Synchronously write to a device
|
|
91
91
|
* @group File operations
|
package/dist/devices.js
CHANGED
|
@@ -427,24 +427,9 @@ export class DeviceFS extends StoreFS {
|
|
|
427
427
|
device.driver.writeD(device, data, offset);
|
|
428
428
|
}
|
|
429
429
|
}
|
|
430
|
-
function defaultWrite(
|
|
431
|
-
return file.writeSync(buffer, offset, length, position);
|
|
432
|
-
}
|
|
433
|
-
function defaultWriteD(device, data, offset) {
|
|
430
|
+
function defaultWrite(device, data, offset) {
|
|
434
431
|
return;
|
|
435
432
|
}
|
|
436
|
-
function defaultRead(file, buffer, offset, length, position) {
|
|
437
|
-
return file.readSync(buffer, offset, length, position);
|
|
438
|
-
}
|
|
439
|
-
// 512 bytes.
|
|
440
|
-
const blockSize = 0x200;
|
|
441
|
-
function alloc(bytesNeeded, existing) {
|
|
442
|
-
const blocksNeeded = bytesNeeded / blockSize;
|
|
443
|
-
const currentBocks = existing ? existing.byteLength / blockSize : 0;
|
|
444
|
-
if (blocksNeeded <= currentBocks && existing)
|
|
445
|
-
return existing;
|
|
446
|
-
return new Uint8Array(Math.ceil(blocksNeeded));
|
|
447
|
-
}
|
|
448
433
|
const emptyBuffer = new Uint8Array();
|
|
449
434
|
/**
|
|
450
435
|
* Simulates the `/dev/null` device.
|
|
@@ -464,8 +449,7 @@ export const nullDevice = {
|
|
|
464
449
|
readD() {
|
|
465
450
|
return emptyBuffer;
|
|
466
451
|
},
|
|
467
|
-
|
|
468
|
-
writeD: defaultWriteD,
|
|
452
|
+
writeD: defaultWrite,
|
|
469
453
|
};
|
|
470
454
|
/**
|
|
471
455
|
* Simulates the `/dev/zero` device
|
|
@@ -483,12 +467,10 @@ export const zeroDevice = {
|
|
|
483
467
|
init() {
|
|
484
468
|
return { major: 1, minor: 5 };
|
|
485
469
|
},
|
|
486
|
-
read: defaultRead,
|
|
487
470
|
readD(device, buffer, offset, end) {
|
|
488
471
|
buffer.fill(0, offset, end);
|
|
489
472
|
},
|
|
490
|
-
|
|
491
|
-
writeD: defaultWriteD,
|
|
473
|
+
writeD: defaultWrite,
|
|
492
474
|
};
|
|
493
475
|
/**
|
|
494
476
|
* Simulates the `/dev/full` device.
|
|
@@ -502,7 +484,6 @@ export const fullDevice = {
|
|
|
502
484
|
init() {
|
|
503
485
|
return { major: 1, minor: 7 };
|
|
504
486
|
},
|
|
505
|
-
read: defaultRead,
|
|
506
487
|
readD(device, buffer, offset, end) {
|
|
507
488
|
buffer.fill(0, offset, end);
|
|
508
489
|
},
|
|
@@ -525,14 +506,12 @@ export const randomDevice = {
|
|
|
525
506
|
init() {
|
|
526
507
|
return { major: 1, minor: 8 };
|
|
527
508
|
},
|
|
528
|
-
read: defaultRead,
|
|
529
509
|
readD(device, buffer) {
|
|
530
510
|
for (let i = 0; i < buffer.length; i++) {
|
|
531
511
|
buffer[i] = Math.floor(Math.random() * 256);
|
|
532
512
|
}
|
|
533
513
|
},
|
|
534
|
-
|
|
535
|
-
writeD: defaultWriteD,
|
|
514
|
+
writeD: defaultWrite,
|
|
536
515
|
};
|
|
537
516
|
/**
|
|
538
517
|
* Simulates the `/dev/console` device.
|
|
@@ -544,11 +523,9 @@ const consoleDevice = {
|
|
|
544
523
|
init(ino, { output = text => console.log(text) } = {}) {
|
|
545
524
|
return { major: 5, minor: 1, data: { output } };
|
|
546
525
|
},
|
|
547
|
-
read: defaultRead,
|
|
548
526
|
readD() {
|
|
549
527
|
return emptyBuffer;
|
|
550
528
|
},
|
|
551
|
-
write: defaultWrite,
|
|
552
529
|
writeD(device, buffer, offset) {
|
|
553
530
|
const text = decodeUTF8(buffer);
|
|
554
531
|
device.data.output(text, offset);
|
package/dist/utils.js
CHANGED
|
@@ -179,10 +179,17 @@ export function growBuffer(buffer, newByteLength) {
|
|
|
179
179
|
isShared ? buffer.grow(newByteLength) : buffer.resize(newByteLength);
|
|
180
180
|
return buffer;
|
|
181
181
|
}
|
|
182
|
-
if (
|
|
182
|
+
if (isShared) {
|
|
183
|
+
const newBuffer = new SharedArrayBuffer(newByteLength);
|
|
184
|
+
new Uint8Array(newBuffer).set(new Uint8Array(buffer));
|
|
185
|
+
return newBuffer;
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
183
188
|
return buffer.transfer(newByteLength);
|
|
184
189
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
190
|
+
catch {
|
|
191
|
+
const newBuffer = new ArrayBuffer(newByteLength);
|
|
192
|
+
new Uint8Array(newBuffer).set(new Uint8Array(buffer));
|
|
193
|
+
return newBuffer;
|
|
194
|
+
}
|
|
188
195
|
}
|