memfs 4.22.1 → 4.23.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.
@@ -83,5 +83,8 @@ export declare class FsPromises implements FsPromisesApi {
83
83
  readonly appendFile: (path: misc.TFileHandle, data: misc.TData, options?: opts.IAppendFileOptions | string) => Promise<void>;
84
84
  readonly open: (path: misc.PathLike, flags?: misc.TFlags, mode?: misc.TMode) => Promise<any>;
85
85
  readonly writeFile: (id: misc.TFileHandle, data: misc.TPromisesData, options?: opts.IWriteFileOptions) => Promise<void>;
86
- readonly watch: () => never;
86
+ readonly watch: (filename: misc.PathLike, options?: opts.IWatchOptions | string) => AsyncIterableIterator<{
87
+ eventType: string;
88
+ filename: string | Buffer;
89
+ }>;
87
90
  }
@@ -3,6 +3,110 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FsPromises = void 0;
4
4
  const util_1 = require("./util");
5
5
  const constants_1 = require("../constants");
6
+ // AsyncIterator implementation for promises.watch
7
+ class FSWatchAsyncIterator {
8
+ constructor(fs, path, options = {}) {
9
+ this.fs = fs;
10
+ this.path = path;
11
+ this.options = options;
12
+ this.eventQueue = [];
13
+ this.resolveQueue = [];
14
+ this.finished = false;
15
+ this.maxQueue = options.maxQueue || 2048;
16
+ this.overflow = options.overflow || 'ignore';
17
+ this.startWatching();
18
+ // Handle AbortSignal
19
+ if (options.signal) {
20
+ if (options.signal.aborted) {
21
+ this.finish();
22
+ return;
23
+ }
24
+ options.signal.addEventListener('abort', () => {
25
+ this.finish();
26
+ });
27
+ }
28
+ }
29
+ startWatching() {
30
+ try {
31
+ this.watcher = this.fs.watch(this.path, this.options, (eventType, filename) => {
32
+ this.enqueueEvent({ eventType, filename });
33
+ });
34
+ }
35
+ catch (error) {
36
+ // If we can't start watching, finish immediately
37
+ this.finish();
38
+ throw error;
39
+ }
40
+ }
41
+ enqueueEvent(event) {
42
+ if (this.finished)
43
+ return;
44
+ // Handle queue overflow
45
+ if (this.eventQueue.length >= this.maxQueue) {
46
+ if (this.overflow === 'throw') {
47
+ const error = new Error(`Watch queue overflow: more than ${this.maxQueue} events queued`);
48
+ this.finish(error);
49
+ return;
50
+ }
51
+ else {
52
+ // 'ignore' - drop the oldest event
53
+ this.eventQueue.shift();
54
+ console.warn(`Watch queue overflow: dropping event due to exceeding maxQueue of ${this.maxQueue}`);
55
+ }
56
+ }
57
+ this.eventQueue.push(event);
58
+ // If there's a waiting promise, resolve it
59
+ if (this.resolveQueue.length > 0) {
60
+ const { resolve } = this.resolveQueue.shift();
61
+ const nextEvent = this.eventQueue.shift();
62
+ resolve({ value: nextEvent, done: false });
63
+ }
64
+ }
65
+ finish(error) {
66
+ if (this.finished)
67
+ return;
68
+ this.finished = true;
69
+ if (this.watcher) {
70
+ this.watcher.close();
71
+ this.watcher = null;
72
+ }
73
+ // Resolve or reject all pending promises
74
+ while (this.resolveQueue.length > 0) {
75
+ const { resolve, reject } = this.resolveQueue.shift();
76
+ if (error) {
77
+ reject(error);
78
+ }
79
+ else {
80
+ resolve({ value: undefined, done: true });
81
+ }
82
+ }
83
+ }
84
+ async next() {
85
+ if (this.finished) {
86
+ return { value: undefined, done: true };
87
+ }
88
+ // If we have queued events, return one
89
+ if (this.eventQueue.length > 0) {
90
+ const event = this.eventQueue.shift();
91
+ return { value: event, done: false };
92
+ }
93
+ // Otherwise, wait for the next event
94
+ return new Promise((resolve, reject) => {
95
+ this.resolveQueue.push({ resolve, reject });
96
+ });
97
+ }
98
+ async return() {
99
+ this.finish();
100
+ return { value: undefined, done: true };
101
+ }
102
+ async throw(error) {
103
+ this.finish(error);
104
+ throw error;
105
+ }
106
+ [Symbol.asyncIterator]() {
107
+ return this;
108
+ }
109
+ }
6
110
  class FsPromises {
7
111
  constructor(fs, FileHandle) {
8
112
  this.fs = fs;
@@ -46,8 +150,9 @@ class FsPromises {
46
150
  const dataPromise = (0, util_1.isReadableStream)(data) ? (0, util_1.streamToBuffer)(data) : Promise.resolve(data);
47
151
  return dataPromise.then(data => (0, util_1.promisify)(this.fs, 'writeFile')(id instanceof this.FileHandle ? id.fd : id, data, options));
48
152
  };
49
- this.watch = () => {
50
- throw new Error('Not implemented');
153
+ this.watch = (filename, options) => {
154
+ const watchOptions = typeof options === 'string' ? { encoding: options } : options || {};
155
+ return new FSWatchAsyncIterator(this.fs, filename, watchOptions);
51
156
  };
52
157
  }
53
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FsPromises.js","sourceRoot":"","sources":["../../src/node/FsPromises.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FsPromises.js","sourceRoot":"","sources":["../../src/node/FsPromises.ts"],"names":[],"mappings":"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"}
@@ -117,6 +117,17 @@ export interface IWatchOptions extends IOptions {
117
117
  * Allows closing the watcher with an {@link AbortSignal}.
118
118
  */
119
119
  signal?: AbortSignal;
120
+ /**
121
+ * Specifies the number of events to queue between iterations of the AsyncIterator.
122
+ * Default: 2048.
123
+ */
124
+ maxQueue?: number;
125
+ /**
126
+ * Either 'ignore' or 'throw' when there are more events to be queued than maxQueue allows.
127
+ * 'ignore' means overflow events are dropped and a warning is emitted, while 'throw'
128
+ * means to throw an exception. Default: 'ignore'.
129
+ */
130
+ overflow?: 'ignore' | 'throw';
120
131
  }
121
132
  export interface ICpOptions {
122
133
  /** dereference symlinks. Default: false. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memfs",
3
- "version": "4.22.1",
3
+ "version": "4.23.0",
4
4
  "description": "In-memory file-system with Node's fs API.",
5
5
  "keywords": [
6
6
  "fs",