vscode-fs 0.0.5 → 0.0.6

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/index.cjs CHANGED
@@ -330,35 +330,52 @@ async function createNodeFileSystem() {
330
330
  const watcher = watch(pattern.pattern, { cwd: pattern.baseUri.fsPath });
331
331
  return new Promise((resolve) => {
332
332
  watcher.on("ready", () => {
333
- const onDidCreateListeners = /* @__PURE__ */ new Set();
334
- const onDidChangeListeners = /* @__PURE__ */ new Set();
335
- const onDidDeleteListeners = /* @__PURE__ */ new Set();
336
- if (options?.ignoreChangeEvents !== true) watcher.on("add", (path) => onDidCreateListeners.forEach((listener) => listener(vscode_uri.URI.file(path))));
337
- if (options?.ignoreChangeEvents !== true) watcher.on("change", (path) => onDidChangeListeners.forEach((listener) => listener(vscode_uri.URI.file(path))));
338
- if (options?.ignoreDeleteEvents !== true) watcher.on("unlink", (path) => onDidDeleteListeners.forEach((listener) => listener(vscode_uri.URI.file(path))));
339
- resolve({
340
- ignoreChangeEvents: options?.ignoreChangeEvents ?? false,
341
- ignoreCreateEvents: options?.ignoreCreateEvents ?? false,
342
- ignoreDeleteEvents: options?.ignoreDeleteEvents ?? false,
343
- onDidCreate: (listener) => {
344
- onDidCreateListeners.add(listener);
345
- return { dispose: () => onDidCreateListeners.delete(listener) };
346
- },
347
- onDidChange: (listener) => {
348
- onDidChangeListeners.add(listener);
349
- return { dispose: () => onDidChangeListeners.delete(listener) };
350
- },
351
- onDidDelete: (listener) => {
352
- onDidDeleteListeners.add(listener);
353
- return { dispose: () => onDidDeleteListeners.delete(listener) };
354
- },
355
- dispose: () => watcher.close()
356
- });
333
+ const fileSystemWatcher = new NodeFileSystemWatcherImpl(watcher, options);
334
+ if (options?.ignoreChangeEvents !== true) watcher.on("add", (path) => fileSystemWatcher.onDidCreateListeners.forEach((listener) => listener(vscode_uri.URI.file(path))));
335
+ if (options?.ignoreChangeEvents !== true) watcher.on("change", (path) => fileSystemWatcher.onDidChangeListeners.forEach((listener) => listener(vscode_uri.URI.file(path))));
336
+ if (options?.ignoreDeleteEvents !== true) watcher.on("unlink", (path) => fileSystemWatcher.onDidDeleteListeners.forEach((listener) => listener(vscode_uri.URI.file(path))));
337
+ resolve(fileSystemWatcher);
357
338
  });
358
339
  });
359
340
  }
360
341
  };
361
342
  }
343
+ var NodeFileSystemWatcherImpl = class {
344
+ constructor(watcher, options) {
345
+ this.watcher = watcher;
346
+ this.options = options;
347
+ }
348
+ get ignoreChangeEvents() {
349
+ return this.options?.ignoreChangeEvents ?? false;
350
+ }
351
+ get ignoreCreateEvents() {
352
+ return this.options?.ignoreCreateEvents ?? false;
353
+ }
354
+ get ignoreDeleteEvents() {
355
+ return this.options?.ignoreDeleteEvents ?? false;
356
+ }
357
+ get isDisposed() {
358
+ return this.watcher.closed;
359
+ }
360
+ onDidCreateListeners = /* @__PURE__ */ new Set();
361
+ onDidChangeListeners = /* @__PURE__ */ new Set();
362
+ onDidDeleteListeners = /* @__PURE__ */ new Set();
363
+ onDidCreate(listener) {
364
+ this.onDidCreateListeners.add(listener);
365
+ return { dispose: () => this.onDidCreateListeners.delete(listener) };
366
+ }
367
+ onDidChange(listener) {
368
+ this.onDidChangeListeners.add(listener);
369
+ return { dispose: () => this.onDidChangeListeners.delete(listener) };
370
+ }
371
+ onDidDelete(listener) {
372
+ this.onDidDeleteListeners.add(listener);
373
+ return { dispose: () => this.onDidDeleteListeners.delete(listener) };
374
+ }
375
+ dispose() {
376
+ this.watcher.close();
377
+ }
378
+ };
362
379
 
363
380
  //#endregion
364
381
  Object.defineProperty(exports, 'FileSystemError', {
package/dist/index.d.cts CHANGED
@@ -260,6 +260,10 @@ interface FileSystemWatcher extends Disposable {
260
260
  * it ignores delete file system events.
261
261
  */
262
262
  readonly ignoreDeleteEvents: boolean;
263
+ /**
264
+ * true if this file system watcher has been disposed.
265
+ */
266
+ readonly isDisposed: boolean;
263
267
  /**
264
268
  * An event which fires on file/folder creation.
265
269
  */
package/dist/index.d.mts CHANGED
@@ -260,6 +260,10 @@ interface FileSystemWatcher extends Disposable {
260
260
  * it ignores delete file system events.
261
261
  */
262
262
  readonly ignoreDeleteEvents: boolean;
263
+ /**
264
+ * true if this file system watcher has been disposed.
265
+ */
266
+ readonly isDisposed: boolean;
263
267
  /**
264
268
  * An event which fires on file/folder creation.
265
269
  */
package/dist/index.mjs CHANGED
@@ -329,35 +329,52 @@ async function createNodeFileSystem() {
329
329
  const watcher = watch(pattern.pattern, { cwd: pattern.baseUri.fsPath });
330
330
  return new Promise((resolve) => {
331
331
  watcher.on("ready", () => {
332
- const onDidCreateListeners = /* @__PURE__ */ new Set();
333
- const onDidChangeListeners = /* @__PURE__ */ new Set();
334
- const onDidDeleteListeners = /* @__PURE__ */ new Set();
335
- if (options?.ignoreChangeEvents !== true) watcher.on("add", (path) => onDidCreateListeners.forEach((listener) => listener(URI.file(path))));
336
- if (options?.ignoreChangeEvents !== true) watcher.on("change", (path) => onDidChangeListeners.forEach((listener) => listener(URI.file(path))));
337
- if (options?.ignoreDeleteEvents !== true) watcher.on("unlink", (path) => onDidDeleteListeners.forEach((listener) => listener(URI.file(path))));
338
- resolve({
339
- ignoreChangeEvents: options?.ignoreChangeEvents ?? false,
340
- ignoreCreateEvents: options?.ignoreCreateEvents ?? false,
341
- ignoreDeleteEvents: options?.ignoreDeleteEvents ?? false,
342
- onDidCreate: (listener) => {
343
- onDidCreateListeners.add(listener);
344
- return { dispose: () => onDidCreateListeners.delete(listener) };
345
- },
346
- onDidChange: (listener) => {
347
- onDidChangeListeners.add(listener);
348
- return { dispose: () => onDidChangeListeners.delete(listener) };
349
- },
350
- onDidDelete: (listener) => {
351
- onDidDeleteListeners.add(listener);
352
- return { dispose: () => onDidDeleteListeners.delete(listener) };
353
- },
354
- dispose: () => watcher.close()
355
- });
332
+ const fileSystemWatcher = new NodeFileSystemWatcherImpl(watcher, options);
333
+ if (options?.ignoreChangeEvents !== true) watcher.on("add", (path) => fileSystemWatcher.onDidCreateListeners.forEach((listener) => listener(URI.file(path))));
334
+ if (options?.ignoreChangeEvents !== true) watcher.on("change", (path) => fileSystemWatcher.onDidChangeListeners.forEach((listener) => listener(URI.file(path))));
335
+ if (options?.ignoreDeleteEvents !== true) watcher.on("unlink", (path) => fileSystemWatcher.onDidDeleteListeners.forEach((listener) => listener(URI.file(path))));
336
+ resolve(fileSystemWatcher);
356
337
  });
357
338
  });
358
339
  }
359
340
  };
360
341
  }
342
+ var NodeFileSystemWatcherImpl = class {
343
+ constructor(watcher, options) {
344
+ this.watcher = watcher;
345
+ this.options = options;
346
+ }
347
+ get ignoreChangeEvents() {
348
+ return this.options?.ignoreChangeEvents ?? false;
349
+ }
350
+ get ignoreCreateEvents() {
351
+ return this.options?.ignoreCreateEvents ?? false;
352
+ }
353
+ get ignoreDeleteEvents() {
354
+ return this.options?.ignoreDeleteEvents ?? false;
355
+ }
356
+ get isDisposed() {
357
+ return this.watcher.closed;
358
+ }
359
+ onDidCreateListeners = /* @__PURE__ */ new Set();
360
+ onDidChangeListeners = /* @__PURE__ */ new Set();
361
+ onDidDeleteListeners = /* @__PURE__ */ new Set();
362
+ onDidCreate(listener) {
363
+ this.onDidCreateListeners.add(listener);
364
+ return { dispose: () => this.onDidCreateListeners.delete(listener) };
365
+ }
366
+ onDidChange(listener) {
367
+ this.onDidChangeListeners.add(listener);
368
+ return { dispose: () => this.onDidChangeListeners.delete(listener) };
369
+ }
370
+ onDidDelete(listener) {
371
+ this.onDidDeleteListeners.add(listener);
372
+ return { dispose: () => this.onDidDeleteListeners.delete(listener) };
373
+ }
374
+ dispose() {
375
+ this.watcher.close();
376
+ }
377
+ };
361
378
 
362
379
  //#endregion
363
380
  export { FileSystemError, FileSystemProviderErrorCode, FileType, RelativePattern, createFileSystemError, createNodeFileSystem, toFileSystemError };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vscode-fs",
3
3
  "type": "module",
4
- "version": "0.0.5",
4
+ "version": "0.0.6",
5
5
  "description": "VSCode like simple、serializable and cross-platform file system utilities.",
6
6
  "author": "Naily Zero <zero@naily.cc> (https://naily.cc)",
7
7
  "license": "MIT",