@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 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(file, buffer, offset, length, position) {
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
- write: defaultWrite,
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
- write: defaultWrite,
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
- write: defaultWrite,
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 (!isShared) {
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
- const newBuffer = new SharedArrayBuffer(newByteLength);
186
- new Uint8Array(newBuffer).set(new Uint8Array(buffer));
187
- return newBuffer;
190
+ catch {
191
+ const newBuffer = new ArrayBuffer(newByteLength);
192
+ new Uint8Array(newBuffer).set(new Uint8Array(buffer));
193
+ return newBuffer;
194
+ }
188
195
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenfs/core",
3
- "version": "1.8.1",
3
+ "version": "1.8.2",
4
4
  "description": "A filesystem, anywhere",
5
5
  "funding": {
6
6
  "type": "individual",