@opensumi/ide-file-service 3.7.1-next-1736763672.0 → 3.7.1-next-1736771329.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.
- package/lib/browser/file-service-client.js +4 -4
- package/lib/browser/file-service-client.js.map +1 -1
- package/lib/browser/file-service-provider-client.d.ts +2 -2
- package/lib/browser/file-service-provider-client.d.ts.map +1 -1
- package/lib/browser/file-service-provider-client.js +2 -2
- package/lib/browser/file-service-provider-client.js.map +1 -1
- package/lib/common/files.d.ts +2 -2
- package/lib/common/files.d.ts.map +1 -1
- package/lib/common/watcher.d.ts +2 -3
- package/lib/common/watcher.d.ts.map +1 -1
- package/lib/common/watcher.js.map +1 -1
- package/lib/node/disk-file-system.provider.d.ts +2 -3
- package/lib/node/disk-file-system.provider.d.ts.map +1 -1
- package/lib/node/disk-file-system.provider.js +2 -3
- package/lib/node/disk-file-system.provider.js.map +1 -1
- package/lib/node/hosted/recursive/file-service-watcher.d.ts +13 -13
- package/lib/node/hosted/recursive/file-service-watcher.d.ts.map +1 -1
- package/lib/node/hosted/recursive/file-service-watcher.js +95 -146
- package/lib/node/hosted/recursive/file-service-watcher.js.map +1 -1
- package/lib/node/hosted/un-recursive/file-service-watcher.d.ts +11 -5
- package/lib/node/hosted/un-recursive/file-service-watcher.d.ts.map +1 -1
- package/lib/node/hosted/un-recursive/file-service-watcher.js +40 -28
- package/lib/node/hosted/un-recursive/file-service-watcher.js.map +1 -1
- package/lib/node/hosted/watcher.host.service.d.ts +2 -7
- package/lib/node/hosted/watcher.host.service.d.ts.map +1 -1
- package/lib/node/hosted/watcher.host.service.js +28 -55
- package/lib/node/hosted/watcher.host.service.js.map +1 -1
- package/lib/node/hosted/watcher.process.js +1 -1
- package/lib/node/hosted/watcher.process.js.map +1 -1
- package/lib/node/watcher-process-manager.d.ts +2 -3
- package/lib/node/watcher-process-manager.d.ts.map +1 -1
- package/lib/node/watcher-process-manager.js +3 -4
- package/lib/node/watcher-process-manager.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/file-service-client.ts +4 -4
- package/src/browser/file-service-provider-client.ts +2 -3
- package/src/common/files.ts +2 -2
- package/src/common/watcher.ts +3 -10
- package/src/node/disk-file-system.provider.ts +3 -8
- package/src/node/hosted/recursive/file-service-watcher.ts +106 -179
- package/src/node/hosted/un-recursive/file-service-watcher.ts +55 -36
- package/src/node/hosted/watcher.host.service.ts +33 -95
- package/src/node/hosted/watcher.process.ts +1 -1
- package/src/node/watcher-process-manager.ts +5 -13
|
@@ -12,7 +12,7 @@ const { join, basename, normalize } = lib_1.path;
|
|
|
12
12
|
class UnRecursiveFileSystemWatcher {
|
|
13
13
|
constructor(logger) {
|
|
14
14
|
this.logger = logger;
|
|
15
|
-
this.
|
|
15
|
+
this.WATCHER_HANDLERS = new Map();
|
|
16
16
|
// 收集发生改变的文件
|
|
17
17
|
this.changes = new file_change_collection_1.FileChangeCollection();
|
|
18
18
|
this.toDispose = new lib_1.DisposableCollection(lib_1.Disposable.create(() => this.setClient(undefined)));
|
|
@@ -24,22 +24,31 @@ class UnRecursiveFileSystemWatcher {
|
|
|
24
24
|
}
|
|
25
25
|
dispose() {
|
|
26
26
|
this.toDispose.dispose();
|
|
27
|
+
this.WATCHER_HANDLERS.clear();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 查找某个路径是否已被监听
|
|
31
|
+
* @param watcherPath
|
|
32
|
+
*/
|
|
33
|
+
checkIsAlreadyWatched(watcherPath) {
|
|
34
|
+
for (const [watcherId, watcher] of this.WATCHER_HANDLERS) {
|
|
35
|
+
if (watcherPath.indexOf(watcher.path) === 0) {
|
|
36
|
+
return watcherId;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
27
39
|
}
|
|
28
40
|
async doWatch(basePath) {
|
|
29
41
|
try {
|
|
30
42
|
const watcher = (0, fs_extra_1.watch)(basePath);
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
const isDirectory = (await fs_extra_1.default.lstat(basePath)).isDirectory();
|
|
43
|
+
this.logger.log('start watching', basePath);
|
|
44
|
+
const isDirectory = fs_extra_1.default.lstatSync(basePath).isDirectory();
|
|
34
45
|
const docChildren = new Set();
|
|
35
46
|
let signalDoc = '';
|
|
36
47
|
if (isDirectory) {
|
|
37
48
|
try {
|
|
38
|
-
const
|
|
39
|
-
for (const child of children) {
|
|
49
|
+
for (const child of fs_extra_1.default.readdirSync(basePath)) {
|
|
40
50
|
const base = join(basePath, String(child));
|
|
41
|
-
|
|
42
|
-
if (!childStat.isDirectory()) {
|
|
51
|
+
if (!fs_extra_1.default.lstatSync(base).isDirectory()) {
|
|
43
52
|
docChildren.add(child);
|
|
44
53
|
}
|
|
45
54
|
}
|
|
@@ -53,10 +62,10 @@ class UnRecursiveFileSystemWatcher {
|
|
|
53
62
|
}
|
|
54
63
|
// 开始走监听流程
|
|
55
64
|
watcher.on('error', (code, signal) => {
|
|
56
|
-
this.logger.error(`
|
|
65
|
+
this.logger.error(`Failed to watch ${basePath} for changes using fs.watch() (${code}, ${signal})`);
|
|
57
66
|
watcher.close();
|
|
58
67
|
});
|
|
59
|
-
watcher.on('change',
|
|
68
|
+
watcher.on('change', (type, filename) => {
|
|
60
69
|
if ((0, shared_1.shouldIgnorePath)(filename)) {
|
|
61
70
|
return;
|
|
62
71
|
}
|
|
@@ -72,13 +81,13 @@ class UnRecursiveFileSystemWatcher {
|
|
|
72
81
|
return;
|
|
73
82
|
}
|
|
74
83
|
const changePath = join(basePath, changeFileName);
|
|
75
|
-
const pathExist = await fs_extra_1.default.pathExists(changePath);
|
|
76
84
|
if (isDirectory) {
|
|
77
85
|
setTimeout(async () => {
|
|
78
86
|
// 监听的目录如果是文件夹,那么只对其下面的文件改动做出响应
|
|
79
87
|
if (docChildren.has(changeFileName)) {
|
|
80
88
|
if ((type === 'rename' || type === 'change') && changeFileName === filename) {
|
|
81
|
-
|
|
89
|
+
const fileExists = fs_extra_1.default.existsSync(changePath);
|
|
90
|
+
if (fileExists) {
|
|
82
91
|
this.pushUpdated(changePath);
|
|
83
92
|
}
|
|
84
93
|
else {
|
|
@@ -87,9 +96,8 @@ class UnRecursiveFileSystemWatcher {
|
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
98
|
}
|
|
90
|
-
else if (
|
|
91
|
-
|
|
92
|
-
if (!fileStat.isDirectory()) {
|
|
99
|
+
else if (fs_extra_1.default.pathExistsSync(changePath)) {
|
|
100
|
+
if (!fs_extra_1.default.lstatSync(changePath).isDirectory()) {
|
|
93
101
|
this.pushAdded(changePath);
|
|
94
102
|
docChildren.add(changeFileName);
|
|
95
103
|
}
|
|
@@ -99,7 +107,7 @@ class UnRecursiveFileSystemWatcher {
|
|
|
99
107
|
else {
|
|
100
108
|
setTimeout(async () => {
|
|
101
109
|
if (changeFileName === signalDoc) {
|
|
102
|
-
if (
|
|
110
|
+
if (fs_extra_1.default.pathExistsSync(basePath)) {
|
|
103
111
|
this.pushUpdated(basePath);
|
|
104
112
|
}
|
|
105
113
|
else {
|
|
@@ -112,25 +120,31 @@ class UnRecursiveFileSystemWatcher {
|
|
|
112
120
|
});
|
|
113
121
|
}
|
|
114
122
|
catch (error) {
|
|
115
|
-
this.logger.error(`
|
|
123
|
+
this.logger.error(`Failed to watch ${basePath} for change using fs.watch() (${error.toString()})`);
|
|
116
124
|
}
|
|
117
125
|
}
|
|
118
126
|
async watchFileChanges(uri) {
|
|
119
127
|
const basePath = lib_1.FileUri.fsPath(uri);
|
|
120
128
|
const exist = await fs_extra_1.default.pathExists(basePath);
|
|
129
|
+
let watcherId = this.checkIsAlreadyWatched(basePath);
|
|
130
|
+
if (watcherId) {
|
|
131
|
+
return watcherId;
|
|
132
|
+
}
|
|
133
|
+
watcherId = UnRecursiveFileSystemWatcher.WATCHER_SEQUENCE++;
|
|
121
134
|
const disposables = new lib_1.DisposableCollection(); // 管理可释放的资源
|
|
122
135
|
let watchPath = '';
|
|
123
136
|
if (exist) {
|
|
124
|
-
const stat = await fs_extra_1.default.
|
|
137
|
+
const stat = await fs_extra_1.default.lstatSync(basePath);
|
|
125
138
|
if (stat) {
|
|
126
139
|
watchPath = basePath;
|
|
127
140
|
}
|
|
128
141
|
}
|
|
129
142
|
else {
|
|
130
|
-
this.logger.warn('
|
|
143
|
+
this.logger.warn('This path does not exist. Please try again');
|
|
131
144
|
}
|
|
132
145
|
disposables.push(await this.start(watchPath));
|
|
133
146
|
this.toDispose.push(disposables);
|
|
147
|
+
return watcherId;
|
|
134
148
|
}
|
|
135
149
|
async start(basePath) {
|
|
136
150
|
const disposables = new lib_1.DisposableCollection();
|
|
@@ -138,9 +152,6 @@ class UnRecursiveFileSystemWatcher {
|
|
|
138
152
|
return disposables;
|
|
139
153
|
}
|
|
140
154
|
const realPath = await fs_extra_1.default.realpath(basePath);
|
|
141
|
-
if (this.watcherCollections.has(realPath)) {
|
|
142
|
-
return disposables;
|
|
143
|
-
}
|
|
144
155
|
const tryWatchDir = async (retryDelay = 1000) => {
|
|
145
156
|
try {
|
|
146
157
|
this.doWatch(realPath);
|
|
@@ -155,13 +166,13 @@ class UnRecursiveFileSystemWatcher {
|
|
|
155
166
|
await tryWatchDir();
|
|
156
167
|
return disposables;
|
|
157
168
|
}
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
if (
|
|
161
|
-
|
|
162
|
-
watcher
|
|
163
|
-
this.watcherCollections.delete(basePath);
|
|
169
|
+
unwatchFileChanges(watcherId) {
|
|
170
|
+
const watcher = this.WATCHER_HANDLERS.get(watcherId);
|
|
171
|
+
if (watcher) {
|
|
172
|
+
this.WATCHER_HANDLERS.delete(watcherId);
|
|
173
|
+
watcher.disposable.dispose();
|
|
164
174
|
}
|
|
175
|
+
return Promise.resolve();
|
|
165
176
|
}
|
|
166
177
|
pushAdded(path) {
|
|
167
178
|
this.pushFileChange(path, index_1.FileChangeType.ADDED);
|
|
@@ -193,5 +204,6 @@ class UnRecursiveFileSystemWatcher {
|
|
|
193
204
|
}
|
|
194
205
|
}
|
|
195
206
|
exports.UnRecursiveFileSystemWatcher = UnRecursiveFileSystemWatcher;
|
|
207
|
+
UnRecursiveFileSystemWatcher.WATCHER_SEQUENCE = 1;
|
|
196
208
|
UnRecursiveFileSystemWatcher.FILE_DELETE_HANDLER_DELAY = 500;
|
|
197
209
|
//# sourceMappingURL=file-service-watcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-service-watcher.js","sourceRoot":"","sources":["../../../../src/node/hosted/un-recursive/file-service-watcher.ts"],"names":[],"mappings":";;;;AAAA,6DAAqC;AACrC,uEAAuC;AAGvC,
|
|
1
|
+
{"version":3,"file":"file-service-watcher.js","sourceRoot":"","sources":["../../../../src/node/hosted/un-recursive/file-service-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SumiConnectionMultiplexer } from '@opensumi/ide-connection';
|
|
2
|
-
import { RecursiveWatcherBackend } from '@opensumi/ide-core-common';
|
|
3
2
|
import { UriComponents } from '@opensumi/ide-utils/lib/uri';
|
|
4
3
|
import { IWatcherHostService } from '../../common/watcher';
|
|
5
4
|
import { IWatcher } from '../disk-file-system.provider';
|
|
@@ -7,9 +6,6 @@ import { WatcherProcessLogger } from './watch-process-log';
|
|
|
7
6
|
export declare class WatcherHostServiceImpl implements IWatcherHostService {
|
|
8
7
|
private rpcProtocol;
|
|
9
8
|
private logger;
|
|
10
|
-
private backend;
|
|
11
|
-
private static WATCHER_SEQUENCE;
|
|
12
|
-
private WATCHER_HANDLERS;
|
|
13
9
|
/**
|
|
14
10
|
* recursive file system watcher
|
|
15
11
|
*/
|
|
@@ -21,14 +17,13 @@ export declare class WatcherHostServiceImpl implements IWatcherHostService {
|
|
|
21
17
|
protected readonly watcherCollection: Map<string, IWatcher>;
|
|
22
18
|
private defaultExcludes;
|
|
23
19
|
private watchedDirs;
|
|
24
|
-
constructor(rpcProtocol: SumiConnectionMultiplexer, logger: WatcherProcessLogger
|
|
20
|
+
constructor(rpcProtocol: SumiConnectionMultiplexer, logger: WatcherProcessLogger);
|
|
25
21
|
initWatcherServer(excludes?: string[], force?: boolean): void;
|
|
26
|
-
|
|
22
|
+
private getWatcherServer;
|
|
27
23
|
private doWatch;
|
|
28
24
|
$watch(uri: UriComponents, options?: {
|
|
29
25
|
excludes?: string[];
|
|
30
26
|
recursive?: boolean;
|
|
31
|
-
pollingWatch?: boolean;
|
|
32
27
|
}): Promise<number>;
|
|
33
28
|
$unwatch(watcherId: number): Promise<void>;
|
|
34
29
|
$setWatcherFileExcludes(excludes: string[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.host.service.d.ts","sourceRoot":"","sources":["../../../src/node/hosted/watcher.host.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"watcher.host.service.d.ts","sourceRoot":"","sources":["../../../src/node/hosted/watcher.host.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAY,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAmD,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAIxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,qBAAa,sBAAuB,YAAW,mBAAmB;IAiBpD,OAAO,CAAC,WAAW;IAA6B,OAAO,CAAC,MAAM;IAhB1E;;OAEG;IACH,OAAO,CAAC,0BAA0B,CAAC,CAA0B;IAE7D;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAC,CAA+B;IAEpE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,wBAA+B;IAEnE,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,WAAW,CAA0B;gBAEzB,WAAW,EAAE,yBAAyB,EAAU,MAAM,EAAE,oBAAoB;IAOhG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,UAAQ;IAmCpD,OAAO,CAAC,gBAAgB;YAcV,OAAO;IA0Bf,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC"}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WatcherHostServiceImpl = void 0;
|
|
4
|
-
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
4
|
const file_watch_1 = require("@opensumi/ide-core-common/lib/preferences/file-watch");
|
|
6
5
|
const uri_1 = require("@opensumi/ide-utils/lib/uri");
|
|
7
6
|
const watcher_1 = require("../../common/watcher");
|
|
8
7
|
const file_service_watcher_1 = require("./recursive/file-service-watcher");
|
|
9
8
|
const file_service_watcher_2 = require("./un-recursive/file-service-watcher");
|
|
10
|
-
const watcherPlaceHolder = {
|
|
11
|
-
disposable: {
|
|
12
|
-
dispose: () => { },
|
|
13
|
-
},
|
|
14
|
-
handlers: [],
|
|
15
|
-
};
|
|
16
9
|
class WatcherHostServiceImpl {
|
|
17
|
-
constructor(rpcProtocol, logger
|
|
10
|
+
constructor(rpcProtocol, logger) {
|
|
18
11
|
this.rpcProtocol = rpcProtocol;
|
|
19
12
|
this.logger = logger;
|
|
20
|
-
this.backend = backend;
|
|
21
|
-
this.WATCHER_HANDLERS = new Map();
|
|
22
13
|
this.watcherCollection = new Map();
|
|
23
14
|
this.defaultExcludes = [];
|
|
24
15
|
this.watchedDirs = new Set();
|
|
@@ -39,16 +30,16 @@ class WatcherHostServiceImpl {
|
|
|
39
30
|
(_b = this.unrecursiveFileSystemWatcher) === null || _b === void 0 ? void 0 : _b.dispose();
|
|
40
31
|
// rewatch
|
|
41
32
|
for (const [_uri, { options, disposable }] of this.watcherCollection) {
|
|
33
|
+
this.doWatch(uri_1.Uri.parse(_uri), options);
|
|
42
34
|
this.logger.log('rewatch file changes: ', _uri, ' recursive: ', options === null || options === void 0 ? void 0 : options.recursive);
|
|
43
35
|
disposable.dispose();
|
|
44
|
-
this.doWatch(uri_1.Uri.parse(_uri), options);
|
|
45
36
|
}
|
|
46
37
|
}
|
|
47
|
-
this.recursiveFileSystemWatcher = new file_service_watcher_1.
|
|
38
|
+
this.recursiveFileSystemWatcher = new file_service_watcher_1.FileSystemWatcherServer(excludes, this.logger);
|
|
48
39
|
this.unrecursiveFileSystemWatcher = new file_service_watcher_2.UnRecursiveFileSystemWatcher(this.logger);
|
|
49
40
|
const watcherClient = {
|
|
50
41
|
onDidFilesChanged: (events) => {
|
|
51
|
-
this.logger.log('onDidFilesChanged: ', events);
|
|
42
|
+
this.logger.log('watcher server onDidFilesChanged: ', events);
|
|
52
43
|
const proxy = this.rpcProtocol.getProxy(watcher_1.WatcherProcessManagerProxy);
|
|
53
44
|
proxy.$onDidFilesChanged(events);
|
|
54
45
|
},
|
|
@@ -56,55 +47,38 @@ class WatcherHostServiceImpl {
|
|
|
56
47
|
this.recursiveFileSystemWatcher.setClient(watcherClient);
|
|
57
48
|
this.unrecursiveFileSystemWatcher.setClient(watcherClient);
|
|
58
49
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
getWatcherServer(recursive) {
|
|
51
|
+
const useRecursiveServer = recursive;
|
|
52
|
+
let watcherServer;
|
|
53
|
+
this.initWatcherServer();
|
|
54
|
+
if (useRecursiveServer) {
|
|
55
|
+
watcherServer = this.recursiveFileSystemWatcher;
|
|
64
56
|
}
|
|
57
|
+
else {
|
|
58
|
+
watcherServer = this.unrecursiveFileSystemWatcher;
|
|
59
|
+
}
|
|
60
|
+
return watcherServer;
|
|
65
61
|
}
|
|
66
62
|
async doWatch(uri, options) {
|
|
67
63
|
var _a;
|
|
68
|
-
this.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (watcherId) {
|
|
72
|
-
this.logger.log(uri.toString(), 'is already watched');
|
|
73
|
-
return watcherId;
|
|
64
|
+
const watcherServer = this.getWatcherServer(options === null || options === void 0 ? void 0 : options.recursive);
|
|
65
|
+
if (!watcherServer) {
|
|
66
|
+
return -1;
|
|
74
67
|
}
|
|
75
|
-
watcherId = WatcherHostServiceImpl.WATCHER_SEQUENCE++;
|
|
76
|
-
this.WATCHER_HANDLERS.set(watcherId, {
|
|
77
|
-
...watcherPlaceHolder,
|
|
78
|
-
path: basePath,
|
|
79
|
-
});
|
|
80
68
|
this.logger.log('watch file changes: ', uri.toString(), ' recursive: ', options === null || options === void 0 ? void 0 : options.recursive);
|
|
81
69
|
const mergedExcludes = new Set([...((_a = options === null || options === void 0 ? void 0 : options.excludes) !== null && _a !== void 0 ? _a : []), ...this.defaultExcludes]);
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.unrecursiveFileSystemWatcher.unwatchFileChanges(uri.toString());
|
|
86
|
-
this.watchedDirs.delete(uri.toString());
|
|
87
|
-
}));
|
|
88
|
-
if (options === null || options === void 0 ? void 0 : options.recursive) {
|
|
89
|
-
this.logger.log('use recursive watcher for: ', uri.toString());
|
|
90
|
-
try {
|
|
91
|
-
await this.recursiveFileSystemWatcher.watchFileChanges(uri.toString(), {
|
|
92
|
-
excludes: Array.from(mergedExcludes),
|
|
93
|
-
pollingWatch: options === null || options === void 0 ? void 0 : options.pollingWatch,
|
|
94
|
-
});
|
|
95
|
-
disposables.push(ide_core_common_1.Disposable.create(() => {
|
|
96
|
-
this.recursiveFileSystemWatcher.unwatchFileChanges(uri.toString());
|
|
97
|
-
this.watchedDirs.delete(uri.toString());
|
|
98
|
-
}));
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
// watch error or timeout
|
|
102
|
-
this.logger.error('watch error: ', error);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
this.watcherCollection.set(uri.toString(), { id: watcherId, options, disposable: disposables });
|
|
70
|
+
const id = await watcherServer.watchFileChanges(uri.toString(), {
|
|
71
|
+
excludes: Array.from(mergedExcludes),
|
|
72
|
+
});
|
|
106
73
|
this.watchedDirs.add(uri.toString());
|
|
107
|
-
|
|
74
|
+
const disposable = {
|
|
75
|
+
dispose: () => {
|
|
76
|
+
watcherServer.unwatchFileChanges(id);
|
|
77
|
+
this.watchedDirs.delete(uri.toString());
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
this.watcherCollection.set(uri.toString(), { id, options, disposable });
|
|
81
|
+
return id;
|
|
108
82
|
}
|
|
109
83
|
async $watch(uri, options) {
|
|
110
84
|
const _uri = uri_1.URI.revive(uri);
|
|
@@ -133,5 +107,4 @@ class WatcherHostServiceImpl {
|
|
|
133
107
|
}
|
|
134
108
|
}
|
|
135
109
|
exports.WatcherHostServiceImpl = WatcherHostServiceImpl;
|
|
136
|
-
WatcherHostServiceImpl.WATCHER_SEQUENCE = 1;
|
|
137
110
|
//# sourceMappingURL=watcher.host.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.host.service.js","sourceRoot":"","sources":["../../../src/node/hosted/watcher.host.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"watcher.host.service.js","sourceRoot":"","sources":["../../../src/node/hosted/watcher.host.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ async function initWatcherProcess() {
|
|
|
29
29
|
timeout: -1,
|
|
30
30
|
});
|
|
31
31
|
const logger = new watch_process_log_1.WatcherProcessLogger(watcherInjector, initData.logDir, initData.logLevel);
|
|
32
|
-
const watcherHostService = new watcher_host_service_1.WatcherHostServiceImpl(watcherProtocol, logger
|
|
32
|
+
const watcherHostService = new watcher_host_service_1.WatcherHostServiceImpl(watcherProtocol, logger);
|
|
33
33
|
watcherHostService.initWatcherServer();
|
|
34
34
|
}
|
|
35
35
|
(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.process.js","sourceRoot":"","sources":["../../../src/node/hosted/watcher.process.ts"],"names":[],"mappings":";;AAAA,6BAAuC;AAEvC,qCAAwC;AACxC,6DAAqE;AACrE,oFAA6F;AAC7F,gEAA8D;AAC9D,oEAAoF;AACpF,+DAA+G;AAC/G,mDAAsE;AAEtE,kDAA4F;AAE5F,2DAA2D;AAC3D,iEAAgE;AAEhE,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,MAAM,GAAQ,OAAO,CAAC;AAE5B,KAAK,UAAU,kBAAkB;IAC/B,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,CAAC;IACf,MAAM,eAAe,GAAG,IAAI,aAAQ,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,IAAI,mBAAO,EAA0B,CAAC;IAE9D,eAAe,CAAC,YAAY,CAAC;QAC3B,KAAK,EAAE,iBAAS;QAChB,QAAQ,EAAE,IAAI,6BAAqB,CAAC,eAAe,CAAC;KACrD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAI,CAAC,+BAAqB,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAI,CAAC,uCAA6B,CAAC,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,IAAA,sBAAgB,EAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,IAAI,0CAAyB,CAAC,IAAI,6BAAmB,CAAC,MAAM,CAAC,EAAE;QACrF,OAAO,EAAE,CAAC,CAAC;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,wCAAoB,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7F,MAAM,kBAAkB,GAAG,IAAI,6CAAsB,CAAC,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"watcher.process.js","sourceRoot":"","sources":["../../../src/node/hosted/watcher.process.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DidFilesChangedParams, FileSystemWatcherClient
|
|
1
|
+
import { DidFilesChangedParams, FileSystemWatcherClient } from '@opensumi/ide-core-common/lib/types/file-watch';
|
|
2
2
|
import { UriComponents } from '@opensumi/ide-core-node';
|
|
3
3
|
import { IWatcherProcessManager } from '../common/watcher';
|
|
4
4
|
export declare const WatcherProcessManagerToken: unique symbol;
|
|
@@ -21,12 +21,11 @@ export declare class WatcherProcessManagerImpl implements IWatcherProcessManager
|
|
|
21
21
|
private createWatcherServer;
|
|
22
22
|
get watcherHost(): string;
|
|
23
23
|
private createWatcherProcess;
|
|
24
|
-
createProcess(clientId: string
|
|
24
|
+
createProcess(clientId: string): Promise<number | undefined>;
|
|
25
25
|
dispose(): Promise<void>;
|
|
26
26
|
watch(uri: UriComponents, options?: {
|
|
27
27
|
excludes?: string[];
|
|
28
28
|
recursive?: boolean;
|
|
29
|
-
pollingWatch: boolean;
|
|
30
29
|
}): Promise<number>;
|
|
31
30
|
unWatch(watcheId: any): Promise<void>;
|
|
32
31
|
setWatcherFileExcludes(excludes: string[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher-process-manager.d.ts","sourceRoot":"","sources":["../../src/node/watcher-process-manager.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"watcher-process-manager.d.ts","sourceRoot":"","sources":["../../src/node/watcher-process-manager.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEhH,OAAO,EAAoC,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG1F,OAAO,EAEL,sBAAsB,EAKvB,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,0BAA0B,eAAkC,CAAC;AAE1E,qBACa,yBAA0B,YAAW,sBAAsB;IACtE,OAAO,CAAC,QAAQ,CAAe;IAE/B,OAAO,CAAC,cAAc,CAAC,CAAe;IAEtC,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,kBAAkB,CAAkC;IAG5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAGnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAEtC,OAAO,CAAC,aAAa,CAA0B;;IAM/C,SAAS,CAAC,MAAM,EAAE,uBAAuB;IAMzC,kBAAkB,CAAC,OAAO,EAAE,qBAAqB;IAIjD,IAAI,SAAS,kBAEZ;IAED,OAAO,CAAC,6BAA6B,CAAkC;IAEvE,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,QAAQ;YAIF,iBAAiB;YAIjB,mBAAmB;IAkBjC,IAAI,WAAW,WAOd;YAEa,oBAAoB;IA0B5B,aAAa,CAAC,QAAQ,EAAE,MAAM;IAY9B,OAAO;IAUP,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAOlG,OAAO,CAAC,QAAQ,KAAA;IAKhB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;CAIhD"}
|
|
@@ -68,7 +68,7 @@ let WatcherProcessManagerImpl = class WatcherProcessManagerImpl {
|
|
|
68
68
|
? path_1.default.join(__dirname, '../../lib/node/hosted/watcher.process.js')
|
|
69
69
|
: path_1.default.join(__dirname, 'hosted', 'watcher.process.' + ide_utils_1.process.extFileType)));
|
|
70
70
|
}
|
|
71
|
-
async createWatcherProcess(clientId, ipcHandlerPath
|
|
71
|
+
async createWatcherProcess(clientId, ipcHandlerPath) {
|
|
72
72
|
const forkArgs = [
|
|
73
73
|
`--${watcher_1.SUMI_WATCHER_PROCESS_SOCK_KEY}=${JSON.stringify({
|
|
74
74
|
path: ipcHandlerPath,
|
|
@@ -76,7 +76,6 @@ let WatcherProcessManagerImpl = class WatcherProcessManagerImpl {
|
|
|
76
76
|
`--${watcher_1.WATCHER_INIT_DATA_KEY}=${JSON.stringify({
|
|
77
77
|
logDir: this.appConfig.logDir,
|
|
78
78
|
logLevel: this.appConfig.logLevel,
|
|
79
|
-
backend,
|
|
80
79
|
clientId,
|
|
81
80
|
})}`,
|
|
82
81
|
];
|
|
@@ -90,12 +89,12 @@ let WatcherProcessManagerImpl = class WatcherProcessManagerImpl {
|
|
|
90
89
|
});
|
|
91
90
|
return this.watcherProcess.pid;
|
|
92
91
|
}
|
|
93
|
-
async createProcess(clientId
|
|
92
|
+
async createProcess(clientId) {
|
|
94
93
|
this.logger.log('create watcher process for client: ', clientId);
|
|
95
94
|
this.logger.log('appconfig watcherHost: ', this.watcherHost);
|
|
96
95
|
const ipcHandlerPath = await this.getIPCHandlerPath('watcher_process');
|
|
97
96
|
await this.createWatcherServer(clientId, ipcHandlerPath);
|
|
98
|
-
const pid = await this.createWatcherProcess(clientId, ipcHandlerPath
|
|
97
|
+
const pid = await this.createWatcherProcess(clientId, ipcHandlerPath);
|
|
99
98
|
return pid;
|
|
100
99
|
}
|
|
101
100
|
async dispose() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher-process-manager.js","sourceRoot":"","sources":["../../src/node/watcher-process-manager.ts"],"names":[],"mappings":";;;;AAAA,iDAAmD;AACnD,6BAAmD;AACnD,wDAAwB;AAExB,qCAAqD;AAErD,0FAAoG;AACpG,qFAAgG;AAChG,2DAA4F;
|
|
1
|
+
{"version":3,"file":"watcher-process-manager.js","sourceRoot":"","sources":["../../src/node/watcher-process-manager.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.7.1-next-
|
|
3
|
+
"version": "3.7.1-next-1736771329.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.7.1-next-
|
|
22
|
-
"@opensumi/ide-core-common": "3.7.1-next-
|
|
23
|
-
"@opensumi/ide-core-node": "3.7.1-next-
|
|
24
|
-
"@opensumi/ide-logs": "3.7.1-next-
|
|
25
|
-
"@opensumi/ide-utils": "3.7.1-next-
|
|
21
|
+
"@opensumi/ide-connection": "3.7.1-next-1736771329.0",
|
|
22
|
+
"@opensumi/ide-core-common": "3.7.1-next-1736771329.0",
|
|
23
|
+
"@opensumi/ide-core-node": "3.7.1-next-1736771329.0",
|
|
24
|
+
"@opensumi/ide-logs": "3.7.1-next-1736771329.0",
|
|
25
|
+
"@opensumi/ide-utils": "3.7.1-next-1736771329.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.7.1-next-
|
|
35
|
-
"@opensumi/ide-dev-tool": "3.7.1-next-
|
|
34
|
+
"@opensumi/ide-core-browser": "3.7.1-next-1736771329.0",
|
|
35
|
+
"@opensumi/ide-dev-tool": "3.7.1-next-1736771329.0"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "29d135599feb4b090a163ec8446b17ac2044c065"
|
|
38
38
|
}
|
|
@@ -143,7 +143,7 @@ export class FileServiceClient implements IFileServiceClient, IDisposable {
|
|
|
143
143
|
async initialize() {
|
|
144
144
|
const provider = await this.getProvider(Schemes.file);
|
|
145
145
|
if (provider.initialize) {
|
|
146
|
-
await provider.initialize(this.clientId
|
|
146
|
+
await provider.initialize(this.clientId);
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
|
|
@@ -354,8 +354,8 @@ export class FileServiceClient implements IFileServiceClient, IDisposable {
|
|
|
354
354
|
|
|
355
355
|
// 添加监听文件
|
|
356
356
|
async watchFileChanges(uri: URI, excludes?: string[]): Promise<IFileServiceWatcher> {
|
|
357
|
-
const
|
|
358
|
-
const
|
|
357
|
+
const unRecursiveDirectories = this.appConfig.unRecursiveDirectories || [];
|
|
358
|
+
const isUnRecursive = unRecursiveDirectories.some((dir) => uri.path.toString().startsWith(dir));
|
|
359
359
|
|
|
360
360
|
const _uri = this.convertUri(uri.toString());
|
|
361
361
|
const originWatcher = this.uriWatcherMap.get(_uri.toString());
|
|
@@ -374,7 +374,7 @@ export class FileServiceClient implements IFileServiceClient, IDisposable {
|
|
|
374
374
|
|
|
375
375
|
const watcherId = await provider.watch(_uri.codeUri, {
|
|
376
376
|
excludes,
|
|
377
|
-
|
|
377
|
+
recursive: !isUnRecursive,
|
|
378
378
|
});
|
|
379
379
|
|
|
380
380
|
this.watcherDisposerMap.set(id, {
|
|
@@ -3,7 +3,6 @@ import {
|
|
|
3
3
|
Emitter,
|
|
4
4
|
Event,
|
|
5
5
|
FileSystemProviderCapabilities,
|
|
6
|
-
RecursiveWatcherBackend,
|
|
7
6
|
Uri,
|
|
8
7
|
debounce,
|
|
9
8
|
getDebugLogger,
|
|
@@ -107,10 +106,10 @@ export class DiskFsProviderClient extends CoreFileServiceProviderClient implemen
|
|
|
107
106
|
return this._capabilities;
|
|
108
107
|
}
|
|
109
108
|
|
|
110
|
-
async initialize(clientId: string
|
|
109
|
+
async initialize(clientId: string) {
|
|
111
110
|
if (this.fileServiceProvider?.initialize) {
|
|
112
111
|
try {
|
|
113
|
-
await this.fileServiceProvider?.initialize(clientId
|
|
112
|
+
await this.fileServiceProvider?.initialize(clientId);
|
|
114
113
|
} catch (err) {
|
|
115
114
|
getDebugLogger('fileService.fsProvider').error('initialize error', err);
|
|
116
115
|
}
|
package/src/common/files.ts
CHANGED
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
isFunction,
|
|
30
30
|
isUndefinedOrNull,
|
|
31
31
|
} from '@opensumi/ide-core-common';
|
|
32
|
-
import { FileStat, FileSystemProvider
|
|
32
|
+
import { FileStat, FileSystemProvider } from '@opensumi/ide-core-common/lib/types/file';
|
|
33
33
|
|
|
34
34
|
import type { Range } from 'vscode-languageserver-types';
|
|
35
35
|
export {
|
|
@@ -420,7 +420,7 @@ export function containsExtraFileMethod<X extends {}, Y extends keyof ExtendedFi
|
|
|
420
420
|
}
|
|
421
421
|
|
|
422
422
|
export interface IDiskFileProvider extends FileSystemProvider {
|
|
423
|
-
initialize?: (clientid: string
|
|
423
|
+
initialize?: (clientid: string) => Promise<void>;
|
|
424
424
|
copy: FileCopyFn;
|
|
425
425
|
access: FileAccessFn;
|
|
426
426
|
getCurrentUserHome: FileGetCurrentUserHomeFn;
|