@componentor/fs 2.0.10 → 2.0.11

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.
Files changed (2) hide show
  1. package/README.md +53 -19
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -250,6 +250,35 @@ fs.promises.flush(): Promise<void> // Flush pending writes
250
250
  fs.promises.purge(): Promise<void> // Clear all caches
251
251
  ```
252
252
 
253
+ ### Streams API
254
+
255
+ ```typescript
256
+ // Create a readable stream (Web Streams API)
257
+ fs.createReadStream(path: string, options?: {
258
+ start?: number, // Byte offset to start reading
259
+ end?: number, // Byte offset to stop reading
260
+ highWaterMark?: number // Chunk size (default: 64KB)
261
+ }): ReadableStream<Uint8Array>
262
+
263
+ // Create a writable stream (Web Streams API)
264
+ fs.createWriteStream(path: string, options?: {
265
+ start?: number, // Byte offset to start writing
266
+ flush?: boolean // Flush on close (default: true)
267
+ }): WritableStream<Uint8Array>
268
+
269
+ // Example: Stream a file
270
+ const stream = fs.createReadStream('/large-file.bin');
271
+ for await (const chunk of stream) {
272
+ console.log('Read chunk:', chunk.length, 'bytes');
273
+ }
274
+
275
+ // Example: Write with streams
276
+ const writable = fs.createWriteStream('/output.bin');
277
+ const writer = writable.getWriter();
278
+ await writer.write(new Uint8Array([1, 2, 3]));
279
+ await writer.close();
280
+ ```
281
+
253
282
  ### Path Utilities
254
283
 
255
284
  ```typescript
@@ -323,36 +352,36 @@ await git.commit({
323
352
 
324
353
  ```
325
354
  ┌─────────────────────────────────────────────────────────────┐
326
- │ Main Thread
327
- │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐
328
- │ │ Sync API │ │ Async API │ │ Path Utilities │
329
- │ │ readFileSync│ │ promises. │ │ join, dirname, etc. │
330
- │ │writeFileSync│ │ readFile │ └─────────────────────┘
331
- │ └──────┬──────┘ └──────┬──────┘
332
- │ │ │
355
+ │ Main Thread
356
+ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐
357
+ │ │ Sync API │ │ Async API │ │ Path Utilities │
358
+ │ │ readFileSync│ │ promises. │ │ join, dirname, etc. │
359
+ │ │writeFileSync│ │ readFile │ └─────────────────────┘
360
+ │ └──────┬──────┘ └──────┬──────┘
361
+ │ │ │
333
362
  │ │ Atomics.wait │ postMessage │
334
363
  │ │ (Tier 1) │ (Tier 2) │
335
364
  └─────────┼────────────────┼──────────────────────────────────┘
336
365
  │ │
337
366
  ▼ ▼
338
367
  ┌─────────────────────────────────────────────────────────────┐
339
- │ Web Worker
368
+ │ Web Worker
340
369
  │ ┌────────────────────────────────────────────────────────┐ │
341
370
  │ │ OPFS Kernel │ │
342
- │ │ ┌──────────────┐ ┌──────────────┐ ┌─────────────┐ │ │
343
- │ │ │ Sync Handle │ │ Directory │ │ navigator │ │ │
344
- │ │ │ Cache │ │ Cache │ │ .locks │ │ │
345
- │ │ │ (100 max) │ │ │ │ (cross-tab) │ │ │
346
- │ │ └──────────────┘ └──────────────┘ └─────────────┘ │ │
371
+ │ │ ┌──────────────┐ ┌──────────────┐ ┌─────────────┐ │ │
372
+ │ │ │ Sync Handle │ │ Directory │ │ navigator │ │ │
373
+ │ │ │ Cache │ │ Cache │ │ .locks │ │ │
374
+ │ │ │ (100 max) │ │ │ │ (cross-tab) │ │ │
375
+ │ │ └──────────────┘ └──────────────┘ └─────────────┘ │ │
347
376
  │ └────────────────────────────────────────────────────────┘ │
348
- │ │
349
- └────────────────────────────┼─────────────────────────────────┘
377
+ │ │
378
+ └────────────────────────────┼────────────────────────────────┘
350
379
 
351
380
 
352
381
  ┌─────────────────────────────────────────────────────────────┐
353
- │ OPFS
354
- │ Origin Private File System
355
- │ (Browser Storage API)
382
+ │ OPFS
383
+ │ Origin Private File System
384
+ │ (Browser Storage API)
356
385
  └─────────────────────────────────────────────────────────────┘
357
386
  ```
358
387
 
@@ -378,7 +407,7 @@ await git.commit({
378
407
  | `open` / `FileHandle` | ✅ | ✅ | ❌ | ❌ |
379
408
  | `opendir` / `Dir` | ✅ | ✅ | ❌ | ❌ |
380
409
  | `mkdtemp` | ✅ | ✅ | ❌ | ❌ |
381
- | Streams | ✅ | | ❌ | ❌ |
410
+ | Streams | ✅ | | ❌ | ❌ |
382
411
 
383
412
  ### Performance Tiers
384
413
 
@@ -446,6 +475,11 @@ Another tab or operation has the file open. The library uses `navigator.locks` t
446
475
 
447
476
  ## Changelog
448
477
 
478
+ ### v2.0.11 (2026)
479
+
480
+ **Document streams API:**
481
+ - Update readme about available streams API
482
+
449
483
  ### v2.0.7 (2025)
450
484
 
451
485
  **High-Performance Handle Caching with `readwrite-unsafe`:**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@componentor/fs",
3
- "version": "2.0.10",
3
+ "version": "2.0.11",
4
4
  "description": "Battle-tested OPFS-based Node.js fs polyfill with sync and async APIs",
5
5
  "license": "MIT",
6
6
  "author": "Componentor",