@opensumi/ide-file-service 3.8.3-next-1747225210.0 → 3.8.3-next-1747273183.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.
@@ -41,7 +41,7 @@ export declare class RecursiveFileSystemWatcher extends Disposable implements IW
41
41
  * @param path 监听的文件路径
42
42
  * @param count 向上查找层级
43
43
  */
44
- protected lookup(path: string, count?: number): Promise<string | undefined>;
44
+ protected lookup(path: string, count?: number): Promise<string>;
45
45
  /**
46
46
  * 过滤 `write-file-atomic` 写入生成的临时文件
47
47
  * @param events
@@ -1 +1 @@
1
- {"version":3,"file":"file-service-watcher.d.ts","sourceRoot":"","sources":["../../../../src/node/hosted/recursive/file-service-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-service-watcher.d.ts","sourceRoot":"","sources":["../../../../src/node/hosted/recursive/file-service-watcher.ts"],"names":[],"mappings":"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"}
@@ -55,14 +55,13 @@ class RecursiveFileSystemWatcher extends utils_1.Disposable {
55
55
  });
56
56
  }
57
57
  async doWatchFileChange(uri, options) {
58
- const basePath = utils_1.FileUri.fsPath(uri);
59
- this.logger.log('[Recursive] watch file changes: ', uri, 'basePath:', basePath);
60
- // 先检查并清理已存在的 handler(使用 basePath)
61
- if (this.WATCHER_HANDLERS.has(basePath)) {
62
- const handler = this.WATCHER_HANDLERS.get(basePath);
58
+ if (this.WATCHER_HANDLERS.has(uri)) {
59
+ const handler = this.WATCHER_HANDLERS.get(uri);
63
60
  handler === null || handler === void 0 ? void 0 : handler.disposable.dispose();
64
- this.WATCHER_HANDLERS.delete(basePath);
61
+ this.WATCHER_HANDLERS.delete(uri);
65
62
  }
63
+ const basePath = utils_1.FileUri.fsPath(uri);
64
+ this.logger.log('[Recursive] watch file changes: ', uri);
66
65
  const toDisposeWatcher = new utils_1.DisposableCollection();
67
66
  let watchPath;
68
67
  const exist = await fs_extra_1.default.pathExists(basePath);
@@ -78,10 +77,6 @@ class RecursiveFileSystemWatcher extends utils_1.Disposable {
78
77
  else {
79
78
  watchPath = await this.lookup(basePath);
80
79
  }
81
- if (!watchPath) {
82
- this.logger.warn(`[Recursive] No valid watch path found for ${uri}`);
83
- return;
84
- }
85
80
  const handler = (err, events) => {
86
81
  if (err) {
87
82
  this.logger.error(`[Recursive] Watching ${watchPath} error: `, err);
@@ -107,6 +102,7 @@ class RecursiveFileSystemWatcher extends utils_1.Disposable {
107
102
  disposable: toDisposeWatcher,
108
103
  handlers: [handler],
109
104
  });
105
+ toDisposeWatcher.push(utils_1.Disposable.create(() => this.WATCHER_HANDLERS.delete(watchPath)));
110
106
  toDisposeWatcher.push(await this.start(watchPath, options));
111
107
  this.addDispose(toDisposeWatcher);
112
108
  }
@@ -121,14 +117,15 @@ class RecursiveFileSystemWatcher extends utils_1.Disposable {
121
117
  let uri = path_1.default.dirname(path);
122
118
  let times = 0;
123
119
  while (!(await fs_extra_1.default.pathExists(uri)) && times < count) {
124
- if (uri === path_1.default.dirname(uri)) {
125
- // 已经到达根目录,仍未找到有效路径
126
- return undefined;
127
- }
128
120
  uri = path_1.default.dirname(uri);
129
121
  times++;
130
122
  }
131
- return (await fs_extra_1.default.pathExists(uri)) ? uri : undefined;
123
+ if (await fs_extra_1.default.pathExists(uri)) {
124
+ return uri;
125
+ }
126
+ else {
127
+ return '';
128
+ }
132
129
  }
133
130
  /**
134
131
  * 过滤 `write-file-atomic` 写入生成的临时文件
@@ -188,31 +185,23 @@ class RecursiveFileSystemWatcher extends utils_1.Disposable {
188
185
  for (let times = 0; times < maxRetries; times++) {
189
186
  try {
190
187
  return await watcher_1.default.subscribe(realPath, (err, events) => {
191
- if (err) {
192
- this.logger.error(`[Recursive] Watcher error for ${realPath}:`, err);
193
- return;
194
- }
188
+ var _a;
195
189
  // 对于超过 5000 数量的 events 做屏蔽优化,避免潜在的卡死问题
196
190
  if (events.length > 5000) {
197
- this.logger.warn(`[Recursive] Too many events (${events.length}) for ${realPath}, skipping...`);
191
+ // FIXME: 研究此处屏蔽的影响,考虑下阈值应该设置多少,或者更加优雅的方式
198
192
  return;
199
193
  }
200
- const watcherInfo = this.WATCHER_HANDLERS.get(realPath);
201
- if (!watcherInfo || !watcherInfo.handlers) {
202
- this.logger.warn('[Recursive] No handler found for watcher', realPath);
194
+ const handlers = (_a = this.WATCHER_HANDLERS.get(realPath)) === null || _a === void 0 ? void 0 : _a.handlers;
195
+ if (!handlers) {
196
+ this.logger.log('[Recursive] No handler found for watcher', realPath);
203
197
  return;
204
198
  }
199
+ this.logger.log('[Recursive] Received events:', events);
205
200
  if (events.length === 0) {
206
201
  return;
207
202
  }
208
- this.logger.debug('[Recursive] Received events:', events);
209
- for (const handler of watcherInfo.handlers) {
210
- try {
211
- handler(err, events);
212
- }
213
- catch (handlerError) {
214
- this.logger.error(`[Recursive] Handler error for ${realPath}:`, handlerError);
215
- }
203
+ for (const handler of handlers) {
204
+ handler(err, events);
216
205
  }
217
206
  }, {
218
207
  backend: RecursiveFileSystemWatcher.PARCEL_WATCHER_BACKEND,
@@ -222,31 +211,23 @@ class RecursiveFileSystemWatcher extends utils_1.Disposable {
222
211
  catch (e) {
223
212
  // Watcher 启动失败,尝试重试
224
213
  this.logger.error('[Recursive] watcher subscribe failed ', e, ' try times ', times);
225
- if (times < maxRetries - 1) {
226
- await new Promise((resolve) => setTimeout(resolve, retryDelay));
227
- }
214
+ await new Promise((resolve) => {
215
+ setTimeout(resolve, retryDelay);
216
+ });
228
217
  }
229
218
  }
230
219
  // 经过若干次的尝试后,Parcel Watcher 依然启动失败,此时就不再尝试重试
231
- this.logger.error(`[Recursive] watcher subscribe finally failed after ${maxRetries} times for ${realPath}`);
232
- return undefined;
220
+ this.logger.error(`[Recursive] watcher subscribe finally failed after ${maxRetries} times`);
221
+ return undefined; // watch 失败则返回 undefined
233
222
  };
234
- try {
235
- const handler = await tryWatchDir();
236
- if (handler) {
237
- disposables.push(utils_1.Disposable.create(async () => {
238
- try {
239
- await handler.unsubscribe();
240
- this.logger.debug(`[Recursive] Successfully unsubscribed watcher for ${realPath}`);
241
- }
242
- catch (error) {
243
- this.logger.error(`[Recursive] Error unsubscribing watcher for ${realPath}:`, error);
244
- }
245
- }));
246
- }
247
- }
248
- catch (error) {
249
- this.logger.error(`[Recursive] Error setting up watcher for ${realPath}:`, error);
223
+ const hanlder = await tryWatchDir();
224
+ if (hanlder) {
225
+ // watch 成功才加入 disposables,否则也就无需 dispose
226
+ disposables.push(utils_1.Disposable.create(async () => {
227
+ if (hanlder) {
228
+ await hanlder.unsubscribe();
229
+ }
230
+ }));
250
231
  }
251
232
  return disposables;
252
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file-service-watcher.js","sourceRoot":"","sources":["../../../../src/node/hosted/recursive/file-service-watcher.ts"],"names":[],"mappings":";;;;AAAA,2BAA4B;AAC5B,qDAAmC;AAEnC,sEAA4C;AAC5C,gEAA0B;AAC1B,uEAAuC;AACvC,mEAAmC;AAEnC,+DAMmC;AAEnC,+DAU6C;AAE7C,qDAAgD;AAChD,yEAAoE;AACpE,sCAA6C;AAgB7C,MAAa,0BAA2B,SAAQ,kBAAU;IAgBxD,YACU,WAAqB,EAAE,EACd,MAAmB,EAC5B,UAAmC,yCAAuB,CAAC,IAAI;QAEvE,KAAK,EAAE,CAAC;QAJA,aAAQ,GAAR,QAAQ,CAAe;QACd,WAAM,GAAN,MAAM,CAAa;QAC5B,YAAO,GAAP,OAAO,CAAwD;QAdjE,qBAAgB,GAAG,IAAI,GAAG,EAG/B,CAAC;QAEM,mBAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QAInD,YAAO,GAAG,IAAI,6CAAoB,EAAE,CAAC;QA2d/C;;;WAGG;QACgB,wBAAmB,GAAe,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,CAAC;QAvdrG,IAAI,CAAC,UAAU,CACb,kBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,OAAsB;QACxD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;gBAC5B,gBAAgB;YAClB,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,IAAI,KAAK,EAAE,CAAC;oBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAW,EAAE,OAAsB;QACjE,MAAM,QAAQ,GAAG,eAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEhF,kCAAkC;QAClC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,4BAAoB,EAAE,CAAC;QACpD,IAAI,SAA6B,CAAC;QAElC,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,MAA6B,EAAE,EAAE;YACrD,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,UAAU,EAAE,GAAG,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,QAAQ;wBACX,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3B,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC7B,MAAM;oBACR,KAAK,QAAQ;wBACX,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC7B,MAAM;gBACV,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB,CAAC,CAAC;QAEH,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;QAC5C,IAAI,GAAG,GAAG,cAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YACpD,IAAI,GAAG,KAAK,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,mBAAmB;gBACnB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,GAAG,GAAG,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,CAAC;IAED;;;OAGG;IACO,eAAe,CAAC,MAA6B;QACrD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,EAAE,CAAC,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,QAAkB;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAES,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,UAAoC;QAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,4BAAoB,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,UAAU;YACV,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,UAAqC;QACjF,MAAM,WAAW,GAAG,IAAI,4BAAoB,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,OAAO,GAAe,MAAM,IAAI,CACpC,QAAQ,EACR,CAAC,MAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACxE;YACE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,EAAE,GAAG,CAAC,CAAC;gBAChG,gDAAgD;gBAChD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;SACF,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAEtB,WAAW,CAAC,IAAI,CACd,kBAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,KAAI,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC;YAC9D,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,UAAqC;QACnF,MAAM,WAAW,GAAG,IAAI,4BAAoB,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,EAAE;;YAC9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,OAAO,MAAM,iBAAa,CAAC,SAAS,CAClC,QAAQ,EACR,CAAC,GAAG,EAAE,MAA6B,EAAE,EAAE;wBACrC,IAAI,GAAG,EAAE,CAAC;4BACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;4BACrE,OAAO;wBACT,CAAC;wBAED,uCAAuC;wBACvC,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;4BACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,MAAM,SAAS,QAAQ,eAAe,CAAC,CAAC;4BAChG,OAAO;wBACT,CAAC;wBAED,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACxD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;4BAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,QAAQ,CAAC,CAAC;4BACvE,OAAO;wBACT,CAAC;wBAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACxB,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;wBAC1D,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;4BAC3C,IAAI,CAAC;gCACF,OAA2C,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;4BAC5D,CAAC;4BAAC,OAAO,YAAY,EAAE,CAAC;gCACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,QAAQ,GAAG,EAAE,YAAY,CAAC,CAAC;4BAChF,CAAC;wBACH,CAAC;oBACH,CAAC,EACD;wBACE,OAAO,EAAE,0BAA0B,CAAC,sBAAsB;wBAC1D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,mCAAI,EAAE,CAAC;qBACzD,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,oBAAoB;oBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;oBACpF,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,UAAU,cAAc,QAAQ,EAAE,CAAC,CAAC;YAC5G,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YACpC,IAAI,OAAO,EAAE,CAAC;gBACZ,WAAW,CAAC,IAAI,CACd,kBAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;oBAC3B,IAAI,CAAC;wBACH,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;wBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,QAAQ,EAAE,CAAC,CAAC;oBACrF,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;oBACvF,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,UAAqC;QAChF,MAAM,WAAW,GAAG,IAAI,4BAAoB,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,cAAc,GAAG,IAAI,wBAAgB,CAAC,KAAK,IAAI,EAAE;;YACrD,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,MAAM,iBAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE;oBAC9E,MAAM,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ;oBAC5B,OAAO,EAAE,0BAA0B,CAAC,sBAAsB;iBAC3D,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,QAAQ,CAAC;gBAE/D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,EAAE,QAAQ,CAAC,CAAC;oBACtE,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;gBAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC9B,OAA2C,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,MAAM,iBAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE;gBACxD,MAAM,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ;gBAC5B,OAAO,EAAE,0BAA0B,CAAC,sBAAsB;aAC3D,CAAC,CAAC;YAEH,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,EAAE,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;QAExD,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjC,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,eAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAA2C;QACnD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,KAAK,yCAAuB,CAAC,IAAI,IAAI,eAAO,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAA2B,EAAE,QAAgB;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAW,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC5G,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,sBAAsB;YACtB,IAAI,KAAK,CAAC,MAAM,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,gBAAM,EAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;gBAClF,OAAO,WAAW,GAAG,OAAO,CAAC;YAC/B,CAAC;YAED,OAAO,KAAK,CAAC,MAAM,GAAG,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/B,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO;oBACxB,CAAC;wBACC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;wBAC5E,IAAI,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;4BACrC,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAE9B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;4BACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;4BACxE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gCAC9B,OAAO;4BACT,CAAC;4BAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACvB,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAQ,CAAC,CAAC;4BACrE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;gCAC9B,OAAO;4BACT,CAAC;4BAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACvB,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR;oBACE,CAAC;wBACC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;wBAClE,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;4BAC9B,OAAO;wBACT,CAAC;wBAED,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;4BACrB,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO;gCACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gCACrB,MAAM;4BACR,KAAK,eAAK,CAAC,OAAO,CAAC,OAAO;gCACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACvB,MAAM;4BACR,KAAK,eAAK,CAAC,OAAO,CAAC,QAAQ;gCACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gCACvB,MAAM;wBACV,CAAC;oBACH,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAES,SAAS,CAAC,IAAY;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAES,WAAW,CAAC,IAAY;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAES,WAAW,CAAC,IAAY;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,gCAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAES,cAAc,CAAC,IAAY,EAAE,IAAoB;QACzD,MAAM,GAAG,GAAG,eAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,IAAY;QACzD,MAAM,IAAI,GAAG,cAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzC,uCAAuC;QACvC,IAAI,eAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,+CAA+C;oBAC/C,OAAO,cAAK,CAAC,IAAI,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/D,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACZ,gDAAgD;oBAChD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOS,qBAAqB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,6CAAoB,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;;AArfH,gEAsfC;AArfyB,iDAAsB,GAAG,iBAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,AAA5D,CAA6D;AAE5F,mDAAwB,GAAG,GAAG,AAAN,CAAO"}
1
+ {"version":3,"file":"file-service-watcher.js","sourceRoot":"","sources":["../../../../src/node/hosted/recursive/file-service-watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-file-service",
3
- "version": "3.8.3-next-1747225210.0",
3
+ "version": "3.8.3-next-1747273183.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -18,11 +18,11 @@
18
18
  "url": "git@github.com:opensumi/core.git"
19
19
  },
20
20
  "dependencies": {
21
- "@opensumi/ide-connection": "3.8.3-next-1747225210.0",
22
- "@opensumi/ide-core-common": "3.8.3-next-1747225210.0",
23
- "@opensumi/ide-core-node": "3.8.3-next-1747225210.0",
24
- "@opensumi/ide-logs": "3.8.3-next-1747225210.0",
25
- "@opensumi/ide-utils": "3.8.3-next-1747225210.0",
21
+ "@opensumi/ide-connection": "3.8.3-next-1747273183.0",
22
+ "@opensumi/ide-core-common": "3.8.3-next-1747273183.0",
23
+ "@opensumi/ide-core-node": "3.8.3-next-1747273183.0",
24
+ "@opensumi/ide-logs": "3.8.3-next-1747273183.0",
25
+ "@opensumi/ide-utils": "3.8.3-next-1747273183.0",
26
26
  "@parcel/watcher": "2.1.0",
27
27
  "file-type": "16.5.4",
28
28
  "nsfw": "2.2.0",
@@ -31,8 +31,8 @@
31
31
  "write-file-atomic": "^5.0.1"
32
32
  },
33
33
  "devDependencies": {
34
- "@opensumi/ide-core-browser": "3.8.3-next-1747225210.0",
35
- "@opensumi/ide-dev-tool": "3.8.3-next-1747225210.0"
34
+ "@opensumi/ide-core-browser": "3.8.3-next-1747273183.0",
35
+ "@opensumi/ide-dev-tool": "3.8.3-next-1747273183.0"
36
36
  },
37
- "gitHead": "2b710f598b75e5c1d5b9b954c2463fb5a4226258"
37
+ "gitHead": "87aab7d758a7f42228903f74ab548c4da5befc97"
38
38
  }
@@ -100,18 +100,17 @@ export class RecursiveFileSystemWatcher extends Disposable implements IWatcher {
100
100
  }
101
101
 
102
102
  private async doWatchFileChange(uri: string, options?: WatchOptions) {
103
- const basePath = FileUri.fsPath(uri);
104
- this.logger.log('[Recursive] watch file changes: ', uri, 'basePath:', basePath);
105
-
106
- // 先检查并清理已存在的 handler(使用 basePath)
107
- if (this.WATCHER_HANDLERS.has(basePath)) {
108
- const handler = this.WATCHER_HANDLERS.get(basePath);
103
+ if (this.WATCHER_HANDLERS.has(uri)) {
104
+ const handler = this.WATCHER_HANDLERS.get(uri);
109
105
  handler?.disposable.dispose();
110
- this.WATCHER_HANDLERS.delete(basePath);
106
+ this.WATCHER_HANDLERS.delete(uri);
111
107
  }
112
108
 
109
+ const basePath = FileUri.fsPath(uri);
110
+ this.logger.log('[Recursive] watch file changes: ', uri);
111
+
113
112
  const toDisposeWatcher = new DisposableCollection();
114
- let watchPath: string | undefined;
113
+ let watchPath: string;
115
114
 
116
115
  const exist = await fs.pathExists(basePath);
117
116
  if (exist) {
@@ -125,11 +124,6 @@ export class RecursiveFileSystemWatcher extends Disposable implements IWatcher {
125
124
  watchPath = await this.lookup(basePath);
126
125
  }
127
126
 
128
- if (!watchPath) {
129
- this.logger.warn(`[Recursive] No valid watch path found for ${uri}`);
130
- return;
131
- }
132
-
133
127
  const handler = (err, events: ParcelWatcher.Event[]) => {
134
128
  if (err) {
135
129
  this.logger.error(`[Recursive] Watching ${watchPath} error: `, err);
@@ -157,6 +151,7 @@ export class RecursiveFileSystemWatcher extends Disposable implements IWatcher {
157
151
  handlers: [handler],
158
152
  });
159
153
 
154
+ toDisposeWatcher.push(Disposable.create(() => this.WATCHER_HANDLERS.delete(watchPath)));
160
155
  toDisposeWatcher.push(await this.start(watchPath, options));
161
156
  this.addDispose(toDisposeWatcher);
162
157
  }
@@ -168,18 +163,18 @@ export class RecursiveFileSystemWatcher extends Disposable implements IWatcher {
168
163
  * @param path 监听的文件路径
169
164
  * @param count 向上查找层级
170
165
  */
171
- protected async lookup(path: string, count = 5): Promise<string | undefined> {
166
+ protected async lookup(path: string, count = 5) {
172
167
  let uri = paths.dirname(path);
173
168
  let times = 0;
174
169
  while (!(await fs.pathExists(uri)) && times < count) {
175
- if (uri === paths.dirname(uri)) {
176
- // 已经到达根目录,仍未找到有效路径
177
- return undefined;
178
- }
179
170
  uri = paths.dirname(uri);
180
171
  times++;
181
172
  }
182
- return (await fs.pathExists(uri)) ? uri : undefined;
173
+ if (await fs.pathExists(uri)) {
174
+ return uri;
175
+ } else {
176
+ return '';
177
+ }
183
178
  }
184
179
 
185
180
  /**
@@ -258,34 +253,25 @@ export class RecursiveFileSystemWatcher extends Disposable implements IWatcher {
258
253
  return await ParcelWatcher.subscribe(
259
254
  realPath,
260
255
  (err, events: ParcelWatcher.Event[]) => {
261
- if (err) {
262
- this.logger.error(`[Recursive] Watcher error for ${realPath}:`, err);
263
- return;
264
- }
265
-
266
256
  // 对于超过 5000 数量的 events 做屏蔽优化,避免潜在的卡死问题
267
257
  if (events.length > 5000) {
268
- this.logger.warn(`[Recursive] Too many events (${events.length}) for ${realPath}, skipping...`);
258
+ // FIXME: 研究此处屏蔽的影响,考虑下阈值应该设置多少,或者更加优雅的方式
269
259
  return;
270
260
  }
261
+ const handlers = this.WATCHER_HANDLERS.get(realPath)?.handlers;
271
262
 
272
- const watcherInfo = this.WATCHER_HANDLERS.get(realPath);
273
- if (!watcherInfo || !watcherInfo.handlers) {
274
- this.logger.warn('[Recursive] No handler found for watcher', realPath);
263
+ if (!handlers) {
264
+ this.logger.log('[Recursive] No handler found for watcher', realPath);
275
265
  return;
276
266
  }
277
267
 
268
+ this.logger.log('[Recursive] Received events:', events);
278
269
  if (events.length === 0) {
279
270
  return;
280
271
  }
281
272
 
282
- this.logger.debug('[Recursive] Received events:', events);
283
- for (const handler of watcherInfo.handlers) {
284
- try {
285
- (handler as ParcelWatcher.SubscribeCallback)(err, events);
286
- } catch (handlerError) {
287
- this.logger.error(`[Recursive] Handler error for ${realPath}:`, handlerError);
288
- }
273
+ for (const handler of handlers) {
274
+ (handler as ParcelWatcher.SubscribeCallback)(err, events);
289
275
  }
290
276
  },
291
277
  {
@@ -296,33 +282,28 @@ export class RecursiveFileSystemWatcher extends Disposable implements IWatcher {
296
282
  } catch (e) {
297
283
  // Watcher 启动失败,尝试重试
298
284
  this.logger.error('[Recursive] watcher subscribe failed ', e, ' try times ', times);
299
- if (times < maxRetries - 1) {
300
- await new Promise((resolve) => setTimeout(resolve, retryDelay));
301
- }
285
+ await new Promise((resolve) => {
286
+ setTimeout(resolve, retryDelay);
287
+ });
302
288
  }
303
289
  }
304
290
 
305
291
  // 经过若干次的尝试后,Parcel Watcher 依然启动失败,此时就不再尝试重试
306
- this.logger.error(`[Recursive] watcher subscribe finally failed after ${maxRetries} times for ${realPath}`);
307
- return undefined;
292
+ this.logger.error(`[Recursive] watcher subscribe finally failed after ${maxRetries} times`);
293
+ return undefined; // watch 失败则返回 undefined
308
294
  };
309
295
 
310
- try {
311
- const handler = await tryWatchDir();
312
- if (handler) {
313
- disposables.push(
314
- Disposable.create(async () => {
315
- try {
316
- await handler.unsubscribe();
317
- this.logger.debug(`[Recursive] Successfully unsubscribed watcher for ${realPath}`);
318
- } catch (error) {
319
- this.logger.error(`[Recursive] Error unsubscribing watcher for ${realPath}:`, error);
320
- }
321
- }),
322
- );
323
- }
324
- } catch (error) {
325
- this.logger.error(`[Recursive] Error setting up watcher for ${realPath}:`, error);
296
+ const hanlder: ParcelWatcher.AsyncSubscription | undefined = await tryWatchDir();
297
+
298
+ if (hanlder) {
299
+ // watch 成功才加入 disposables,否则也就无需 dispose
300
+ disposables.push(
301
+ Disposable.create(async () => {
302
+ if (hanlder) {
303
+ await hanlder.unsubscribe();
304
+ }
305
+ }),
306
+ );
326
307
  }
327
308
 
328
309
  return disposables;