@theia/filesystem 1.54.0 → 1.55.0-next.25
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-tree/file-tree-model.d.ts +1 -5
- package/lib/browser/file-tree/file-tree-model.d.ts.map +1 -1
- package/lib/browser/file-tree/file-tree-model.js +0 -17
- package/lib/browser/file-tree/file-tree-model.js.map +1 -1
- package/lib/browser/filesystem-preferences.d.ts.map +1 -1
- package/lib/browser/filesystem-preferences.js +1 -2
- package/lib/browser/filesystem-preferences.js.map +1 -1
- package/lib/node/download/file-download-cache.d.ts.map +1 -1
- package/lib/node/download/file-download-cache.js +3 -5
- package/lib/node/download/file-download-cache.js.map +1 -1
- package/lib/node/filesystem-backend-module.d.ts +8 -8
- package/lib/node/filesystem-backend-module.d.ts.map +1 -1
- package/lib/node/filesystem-backend-module.js +27 -27
- package/lib/node/filesystem-backend-module.js.map +1 -1
- package/lib/node/filesystem-watcher-client.d.ts +1 -2
- package/lib/node/filesystem-watcher-client.d.ts.map +1 -1
- package/lib/node/filesystem-watcher-client.js +2 -3
- package/lib/node/filesystem-watcher-client.js.map +1 -1
- package/lib/node/parcel-watcher/index.d.ts.map +1 -0
- package/lib/node/{nsfw-watcher → parcel-watcher}/index.js +3 -3
- package/lib/node/parcel-watcher/index.js.map +1 -0
- package/lib/node/{nsfw-watcher/nsfw-filesystem-service.d.ts → parcel-watcher/parcel-filesystem-service.d.ts} +29 -29
- package/lib/node/parcel-watcher/parcel-filesystem-service.d.ts.map +1 -0
- package/lib/node/{nsfw-watcher/nsfw-filesystem-service.js → parcel-watcher/parcel-filesystem-service.js} +55 -66
- package/lib/node/parcel-watcher/parcel-filesystem-service.js.map +1 -0
- package/lib/node/parcel-watcher/parcel-filesystem-watcher.spec.d.ts +2 -0
- package/lib/node/parcel-watcher/parcel-filesystem-watcher.spec.d.ts.map +1 -0
- package/lib/node/{nsfw-watcher/nsfw-filesystem-watcher.spec.js → parcel-watcher/parcel-filesystem-watcher.spec.js} +22 -29
- package/lib/node/parcel-watcher/parcel-filesystem-watcher.spec.js.map +1 -0
- package/lib/node/parcel-watcher/parcel-options.d.ts +7 -0
- package/lib/node/parcel-watcher/parcel-options.d.ts.map +1 -0
- package/lib/node/{nsfw-watcher/nsfw-options.js → parcel-watcher/parcel-options.js} +4 -4
- package/lib/node/parcel-watcher/parcel-options.js.map +1 -0
- package/package.json +4 -5
- package/src/browser/file-tree/file-tree-model.ts +1 -19
- package/src/browser/filesystem-preferences.ts +1 -2
- package/src/node/download/file-download-cache.ts +3 -5
- package/src/node/filesystem-backend-module.ts +27 -27
- package/src/node/filesystem-watcher-client.ts +1 -3
- package/src/node/{nsfw-watcher → parcel-watcher}/index.ts +3 -3
- package/src/node/{nsfw-watcher/nsfw-filesystem-service.ts → parcel-watcher/parcel-filesystem-service.ts} +62 -72
- package/src/node/{nsfw-watcher/nsfw-filesystem-watcher.spec.ts → parcel-watcher/parcel-filesystem-watcher.spec.ts} +22 -29
- package/src/node/{nsfw-watcher/nsfw-options.ts → parcel-watcher/parcel-options.ts} +4 -4
- package/lib/node/nsfw-watcher/index.d.ts.map +0 -1
- package/lib/node/nsfw-watcher/index.js.map +0 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-service.d.ts.map +0 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-service.js.map +0 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.d.ts +0 -2
- package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.d.ts.map +0 -1
- package/lib/node/nsfw-watcher/nsfw-filesystem-watcher.spec.js.map +0 -1
- package/lib/node/nsfw-watcher/nsfw-options.d.ts +0 -7
- package/lib/node/nsfw-watcher/nsfw-options.d.ts.map +0 -1
- package/lib/node/nsfw-watcher/nsfw-options.js.map +0 -1
- package/src/typings/nsfw/index.d.ts +0 -18
- /package/lib/node/{nsfw-watcher → parcel-watcher}/index.d.ts +0 -0
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
19
|
-
const nsfw = require("@theia/core/shared/nsfw");
|
|
18
|
+
exports.ParcelFileSystemWatcherService = exports.ParcelWatcher = exports.WatcherDisposal = exports.ParcelFileSystemWatcherServerOptions = void 0;
|
|
20
19
|
const path = require("path");
|
|
21
20
|
const fs_1 = require("fs");
|
|
22
21
|
const minimatch_1 = require("minimatch");
|
|
23
22
|
const file_uri_1 = require("@theia/core/lib/common/file-uri");
|
|
24
23
|
const file_change_collection_1 = require("../file-change-collection");
|
|
25
24
|
const promise_util_1 = require("@theia/core/lib/common/promise-util");
|
|
26
|
-
|
|
25
|
+
const watcher_1 = require("@theia/core/shared/@parcel/watcher");
|
|
26
|
+
exports.ParcelFileSystemWatcherServerOptions = Symbol('ParcelFileSystemWatcherServerOptions');
|
|
27
27
|
/**
|
|
28
28
|
* This is a flag value passed around upon disposal.
|
|
29
29
|
*/
|
|
@@ -38,7 +38,7 @@ exports.WatcherDisposal = Symbol('WatcherDisposal');
|
|
|
38
38
|
* Once there are no more references the handle
|
|
39
39
|
* will wait for some time before destroying its resources.
|
|
40
40
|
*/
|
|
41
|
-
class
|
|
41
|
+
class ParcelWatcher {
|
|
42
42
|
constructor(
|
|
43
43
|
/** Initial reference to this handle. */
|
|
44
44
|
initialClientId,
|
|
@@ -46,22 +46,22 @@ class NsfwWatcher {
|
|
|
46
46
|
fsPath,
|
|
47
47
|
/** Watcher-specific options */
|
|
48
48
|
watcherOptions,
|
|
49
|
-
/** Logging and
|
|
50
|
-
|
|
49
|
+
/** Logging and parcel watcher options */
|
|
50
|
+
parcelFileSystemWatchServerOptions,
|
|
51
51
|
/** The client to forward events to. */
|
|
52
52
|
fileSystemWatcherClient,
|
|
53
53
|
/** Amount of time in ms to wait once this handle is not referenced anymore. */
|
|
54
54
|
deferredDisposalTimeout = 10000) {
|
|
55
55
|
this.fsPath = fsPath;
|
|
56
56
|
this.watcherOptions = watcherOptions;
|
|
57
|
-
this.
|
|
57
|
+
this.parcelFileSystemWatchServerOptions = parcelFileSystemWatchServerOptions;
|
|
58
58
|
this.fileSystemWatcherClient = fileSystemWatcherClient;
|
|
59
59
|
this.deferredDisposalTimeout = deferredDisposalTimeout;
|
|
60
60
|
this.disposed = false;
|
|
61
61
|
/**
|
|
62
62
|
* Used for debugging to keep track of the watchers.
|
|
63
63
|
*/
|
|
64
|
-
this.debugId =
|
|
64
|
+
this.debugId = ParcelWatcher.debugIdSequence++;
|
|
65
65
|
/**
|
|
66
66
|
* This deferred only rejects with `WatcherDisposal` and never resolves.
|
|
67
67
|
*/
|
|
@@ -78,7 +78,7 @@ class NsfwWatcher {
|
|
|
78
78
|
* Ensures that events are processed in the order they are emitted,
|
|
79
79
|
* despite being processed async.
|
|
80
80
|
*/
|
|
81
|
-
this.
|
|
81
|
+
this.parcelEventProcessingQueue = Promise.resolve();
|
|
82
82
|
/**
|
|
83
83
|
* Resolves once this handle disposed itself and its resources. Never throws.
|
|
84
84
|
*/
|
|
@@ -161,7 +161,7 @@ class NsfwWatcher {
|
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
163
|
* When starting a watcher, we'll first check and wait for the path to exists
|
|
164
|
-
* before running
|
|
164
|
+
* before running a parcel watcher.
|
|
165
165
|
*/
|
|
166
166
|
async start() {
|
|
167
167
|
while (await fs_1.promises.stat(this.fsPath).then(() => false, () => true)) {
|
|
@@ -169,71 +169,60 @@ class NsfwWatcher {
|
|
|
169
169
|
this.assertNotDisposed();
|
|
170
170
|
}
|
|
171
171
|
this.assertNotDisposed();
|
|
172
|
-
const watcher = await this.
|
|
172
|
+
const watcher = await this.createWatcher();
|
|
173
173
|
this.assertNotDisposed();
|
|
174
|
-
await watcher.start();
|
|
175
174
|
this.debug('STARTED', `disposed=${this.disposed}`);
|
|
176
175
|
// The watcher could be disposed while it was starting, make sure to check for this:
|
|
177
176
|
if (this.disposed) {
|
|
178
|
-
await this.
|
|
177
|
+
await this.stopWatcher(watcher);
|
|
179
178
|
throw exports.WatcherDisposal;
|
|
180
179
|
}
|
|
181
|
-
this.
|
|
180
|
+
this.watcher = watcher;
|
|
182
181
|
}
|
|
183
182
|
/**
|
|
184
|
-
* Given a started
|
|
183
|
+
* Given a started parcel watcher instance, gracefully shut it down.
|
|
185
184
|
*/
|
|
186
|
-
async
|
|
187
|
-
await watcher.
|
|
185
|
+
async stopWatcher(watcher) {
|
|
186
|
+
await watcher.unsubscribe()
|
|
188
187
|
.then(() => 'success=true', error => error)
|
|
189
188
|
.then(status => this.debug('STOPPED', status));
|
|
190
189
|
}
|
|
191
|
-
async
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
console.error(`
|
|
190
|
+
async createWatcher() {
|
|
191
|
+
let fsPath = await fs_1.promises.realpath(this.fsPath);
|
|
192
|
+
if ((await fs_1.promises.stat(fsPath)).isFile()) {
|
|
193
|
+
fsPath = path.dirname(fsPath);
|
|
194
|
+
}
|
|
195
|
+
return (0, watcher_1.subscribe)(fsPath, (err, events) => {
|
|
196
|
+
if (err) {
|
|
197
|
+
console.error(`Watcher service error on "${fsPath}":`, err);
|
|
199
198
|
this._dispose();
|
|
200
199
|
this.fireError();
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
this.handleWatcherEvents(events);
|
|
203
|
+
}, {
|
|
204
|
+
...this.parcelFileSystemWatchServerOptions.parcelOptions
|
|
206
205
|
});
|
|
207
206
|
}
|
|
208
|
-
|
|
207
|
+
handleWatcherEvents(events) {
|
|
209
208
|
// Only process events if someone is listening.
|
|
210
209
|
if (this.isInUse()) {
|
|
211
|
-
// This callback is async, but
|
|
210
|
+
// This callback is async, but parcel won't wait for it to finish before firing the next one.
|
|
212
211
|
// We will use a lock/queue to make sure everything is processed in the order it arrives.
|
|
213
|
-
this.
|
|
212
|
+
this.parcelEventProcessingQueue = this.parcelEventProcessingQueue.then(async () => {
|
|
214
213
|
const fileChangeCollection = new file_change_collection_1.FileChangeCollection();
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
this.resolveEventPath(event.newDirectory, event.newFile),
|
|
220
|
-
]);
|
|
221
|
-
this.pushFileChange(fileChangeCollection, 2 /* FileChangeType.DELETED */, oldPath);
|
|
222
|
-
this.pushFileChange(fileChangeCollection, 1 /* FileChangeType.ADDED */, newPath);
|
|
214
|
+
for (const event of events) {
|
|
215
|
+
const filePath = event.path;
|
|
216
|
+
if (event.type === 'create') {
|
|
217
|
+
this.pushFileChange(fileChangeCollection, 1 /* FileChangeType.ADDED */, filePath);
|
|
223
218
|
}
|
|
224
|
-
else {
|
|
225
|
-
|
|
226
|
-
if (event.action === 0 /* nsfw.actions.CREATED */) {
|
|
227
|
-
this.pushFileChange(fileChangeCollection, 1 /* FileChangeType.ADDED */, filePath);
|
|
228
|
-
}
|
|
229
|
-
else if (event.action === 1 /* nsfw.actions.DELETED */) {
|
|
230
|
-
this.pushFileChange(fileChangeCollection, 2 /* FileChangeType.DELETED */, filePath);
|
|
231
|
-
}
|
|
232
|
-
else if (event.action === 2 /* nsfw.actions.MODIFIED */) {
|
|
233
|
-
this.pushFileChange(fileChangeCollection, 0 /* FileChangeType.UPDATED */, filePath);
|
|
234
|
-
}
|
|
219
|
+
else if (event.type === 'delete') {
|
|
220
|
+
this.pushFileChange(fileChangeCollection, 2 /* FileChangeType.DELETED */, filePath);
|
|
235
221
|
}
|
|
236
|
-
|
|
222
|
+
else if (event.type === 'update') {
|
|
223
|
+
this.pushFileChange(fileChangeCollection, 0 /* FileChangeType.UPDATED */, filePath);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
237
226
|
const changes = fileChangeCollection.values();
|
|
238
227
|
// If all changes are part of the ignored files, the collection will be empty.
|
|
239
228
|
if (changes.length > 0) {
|
|
@@ -246,7 +235,7 @@ class NsfwWatcher {
|
|
|
246
235
|
}
|
|
247
236
|
}
|
|
248
237
|
async resolveEventPath(directory, file) {
|
|
249
|
-
//
|
|
238
|
+
// parcel already resolves symlinks, the paths should be clean already:
|
|
250
239
|
return path.resolve(directory, file);
|
|
251
240
|
}
|
|
252
241
|
pushFileChange(changes, type, filePath) {
|
|
@@ -291,27 +280,27 @@ class NsfwWatcher {
|
|
|
291
280
|
if (!this.disposed) {
|
|
292
281
|
this.disposed = true;
|
|
293
282
|
this.deferredDisposalDeferred.reject(exports.WatcherDisposal);
|
|
294
|
-
if (this.
|
|
295
|
-
this.
|
|
296
|
-
this.
|
|
283
|
+
if (this.watcher) {
|
|
284
|
+
this.stopWatcher(this.watcher);
|
|
285
|
+
this.watcher = undefined;
|
|
297
286
|
}
|
|
298
287
|
this.debug('DISPOSED');
|
|
299
288
|
}
|
|
300
289
|
}
|
|
301
290
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
302
291
|
info(prefix, ...params) {
|
|
303
|
-
this.
|
|
292
|
+
this.parcelFileSystemWatchServerOptions.info(`${prefix} ParcelWatcher(${this.debugId} at "${this.fsPath}"):`, ...params);
|
|
304
293
|
}
|
|
305
294
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
306
295
|
debug(prefix, ...params) {
|
|
307
|
-
if (this.
|
|
296
|
+
if (this.parcelFileSystemWatchServerOptions.verbose) {
|
|
308
297
|
this.info(prefix, ...params);
|
|
309
298
|
}
|
|
310
299
|
}
|
|
311
300
|
}
|
|
312
|
-
exports.
|
|
313
|
-
|
|
314
|
-
class
|
|
301
|
+
exports.ParcelWatcher = ParcelWatcher;
|
|
302
|
+
ParcelWatcher.debugIdSequence = 0;
|
|
303
|
+
class ParcelFileSystemWatcherService {
|
|
315
304
|
constructor(options) {
|
|
316
305
|
this.watcherId = 0;
|
|
317
306
|
this.watchers = new Map();
|
|
@@ -324,7 +313,7 @@ class NsfwFileSystemWatcherService {
|
|
|
324
313
|
onError: event => { var _a; return (_a = this.client) === null || _a === void 0 ? void 0 : _a.onError(event); },
|
|
325
314
|
};
|
|
326
315
|
this.options = {
|
|
327
|
-
|
|
316
|
+
parcelOptions: {},
|
|
328
317
|
verbose: false,
|
|
329
318
|
info: (message, ...args) => console.info(message, ...args),
|
|
330
319
|
error: (message, ...args) => console.error(message, ...args),
|
|
@@ -362,7 +351,7 @@ class NsfwFileSystemWatcherService {
|
|
|
362
351
|
ignored: options.ignored
|
|
363
352
|
.map(pattern => new minimatch_1.Minimatch(pattern, { dot: true })),
|
|
364
353
|
};
|
|
365
|
-
return new
|
|
354
|
+
return new ParcelWatcher(clientId, fsPath, watcherOptions, this.options, this.maybeClient);
|
|
366
355
|
}
|
|
367
356
|
async unwatchFileChanges(watcherId) {
|
|
368
357
|
const handle = this.watcherHandles.get(watcherId);
|
|
@@ -402,5 +391,5 @@ class NsfwFileSystemWatcherService {
|
|
|
402
391
|
// Singletons shouldn't be disposed...
|
|
403
392
|
}
|
|
404
393
|
}
|
|
405
|
-
exports.
|
|
406
|
-
//# sourceMappingURL=
|
|
394
|
+
exports.ParcelFileSystemWatcherService = ParcelFileSystemWatcherService;
|
|
395
|
+
//# sourceMappingURL=parcel-filesystem-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-filesystem-service.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-filesystem-watcher.spec.d.ts","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-watcher.spec.ts"],"names":[],"mappings":""}
|
|
@@ -21,10 +21,10 @@ const cp = require("child_process");
|
|
|
21
21
|
const fs = require("@theia/core/shared/fs-extra");
|
|
22
22
|
const assert = require("assert");
|
|
23
23
|
const node_1 = require("@theia/core/lib/node");
|
|
24
|
-
const
|
|
24
|
+
const parcel_filesystem_service_1 = require("./parcel-filesystem-service");
|
|
25
25
|
const expect = chai.expect;
|
|
26
26
|
const track = temp.track();
|
|
27
|
-
describe('
|
|
27
|
+
describe('parcel-filesystem-watcher', function () {
|
|
28
28
|
let root;
|
|
29
29
|
let watcherService;
|
|
30
30
|
let watcherId;
|
|
@@ -32,7 +32,7 @@ describe('nsfw-filesystem-watcher', function () {
|
|
|
32
32
|
beforeEach(async () => {
|
|
33
33
|
let tempPath = temp.mkdirSync('node-fs-root');
|
|
34
34
|
// Sometimes tempPath will use some Windows 8.3 short name in its path. This is a problem
|
|
35
|
-
// since
|
|
35
|
+
// since parcel always returns paths with long names. We need to convert here.
|
|
36
36
|
// See: https://stackoverflow.com/a/34473971/7983255
|
|
37
37
|
if (process.platform === 'win32') {
|
|
38
38
|
tempPath = cp.execSync(`powershell "(Get-Item -LiteralPath '${tempPath}').FullName"`, {
|
|
@@ -40,9 +40,9 @@ describe('nsfw-filesystem-watcher', function () {
|
|
|
40
40
|
}).trim();
|
|
41
41
|
}
|
|
42
42
|
root = node_1.FileUri.create(fs.realpathSync(tempPath));
|
|
43
|
-
watcherService =
|
|
43
|
+
watcherService = createParcelFileSystemWatcherService();
|
|
44
44
|
watcherId = await watcherService.watchFileChanges(0, root.toString());
|
|
45
|
-
await sleep(
|
|
45
|
+
await sleep(200);
|
|
46
46
|
});
|
|
47
47
|
afterEach(async () => {
|
|
48
48
|
track.cleanupSync();
|
|
@@ -65,13 +65,13 @@ describe('nsfw-filesystem-watcher', function () {
|
|
|
65
65
|
];
|
|
66
66
|
fs.mkdirSync(node_1.FileUri.fsPath(root.resolve('foo')));
|
|
67
67
|
expect(fs.statSync(node_1.FileUri.fsPath(root.resolve('foo'))).isDirectory()).to.be.true;
|
|
68
|
-
await sleep(
|
|
68
|
+
await sleep(200);
|
|
69
69
|
fs.mkdirSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar')));
|
|
70
70
|
expect(fs.statSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar'))).isDirectory()).to.be.true;
|
|
71
|
-
await sleep(
|
|
71
|
+
await sleep(200);
|
|
72
72
|
fs.writeFileSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'baz');
|
|
73
73
|
expect(fs.readFileSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'utf8')).to.be.equal('baz');
|
|
74
|
-
await sleep(
|
|
74
|
+
await sleep(200);
|
|
75
75
|
assert.deepStrictEqual([...actualUris], expectedUris);
|
|
76
76
|
});
|
|
77
77
|
it('Should not receive file changes events from in the workspace by default if unwatched', async function () {
|
|
@@ -88,16 +88,16 @@ describe('nsfw-filesystem-watcher', function () {
|
|
|
88
88
|
await watcherService.unwatchFileChanges(watcherId);
|
|
89
89
|
fs.mkdirSync(node_1.FileUri.fsPath(root.resolve('foo')));
|
|
90
90
|
expect(fs.statSync(node_1.FileUri.fsPath(root.resolve('foo'))).isDirectory()).to.be.true;
|
|
91
|
-
await sleep(
|
|
91
|
+
await sleep(200);
|
|
92
92
|
fs.mkdirSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar')));
|
|
93
93
|
expect(fs.statSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar'))).isDirectory()).to.be.true;
|
|
94
|
-
await sleep(
|
|
94
|
+
await sleep(200);
|
|
95
95
|
fs.writeFileSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'baz');
|
|
96
96
|
expect(fs.readFileSync(node_1.FileUri.fsPath(root.resolve('foo').resolve('bar').resolve('baz.txt')), 'utf8')).to.be.equal('baz');
|
|
97
|
-
await sleep(
|
|
97
|
+
await sleep(200);
|
|
98
98
|
assert.deepStrictEqual(actualUris.size, 0);
|
|
99
99
|
});
|
|
100
|
-
it('Renaming should emit a DELETED
|
|
100
|
+
it('Renaming should emit a DELETED and ADDED event', async function () {
|
|
101
101
|
const file_txt = root.resolve('file.txt');
|
|
102
102
|
const FILE_txt = root.resolve('FILE.txt');
|
|
103
103
|
const changes = [];
|
|
@@ -106,38 +106,31 @@ describe('nsfw-filesystem-watcher', function () {
|
|
|
106
106
|
onError: console.error
|
|
107
107
|
});
|
|
108
108
|
await fs.promises.writeFile(node_1.FileUri.fsPath(file_txt), 'random content\n');
|
|
109
|
-
await sleep(
|
|
109
|
+
await sleep(200);
|
|
110
110
|
await fs.promises.rename(node_1.FileUri.fsPath(file_txt), node_1.FileUri.fsPath(FILE_txt));
|
|
111
|
-
await sleep(
|
|
111
|
+
await sleep(200);
|
|
112
|
+
// The order of DELETED and ADDED is not deterministic
|
|
112
113
|
try {
|
|
113
114
|
expect(changes).deep.eq([
|
|
114
115
|
// initial file creation change event:
|
|
115
116
|
{ type: 1 /* FileChangeType.ADDED */, uri: file_txt.toString() },
|
|
116
117
|
// rename change events:
|
|
117
118
|
{ type: 2 /* FileChangeType.DELETED */, uri: file_txt.toString() },
|
|
118
|
-
{ type: 1 /* FileChangeType.ADDED */, uri: FILE_txt.toString() }
|
|
119
|
+
{ type: 1 /* FileChangeType.ADDED */, uri: FILE_txt.toString() },
|
|
119
120
|
]);
|
|
120
121
|
}
|
|
121
|
-
catch
|
|
122
|
-
// TODO: remove this try/catch once the bug on macOS is fixed.
|
|
123
|
-
// See https://github.com/Axosoft/nsfw/issues/146
|
|
124
|
-
if (process.platform !== 'darwin') {
|
|
125
|
-
throw error;
|
|
126
|
-
}
|
|
127
|
-
// On macOS we only get ADDED events for some reason
|
|
122
|
+
catch {
|
|
128
123
|
expect(changes).deep.eq([
|
|
129
124
|
// initial file creation change event:
|
|
130
125
|
{ type: 1 /* FileChangeType.ADDED */, uri: file_txt.toString() },
|
|
131
126
|
// rename change events:
|
|
132
|
-
{ type: 1 /* FileChangeType.ADDED */, uri:
|
|
133
|
-
{ type:
|
|
127
|
+
{ type: 1 /* FileChangeType.ADDED */, uri: FILE_txt.toString() },
|
|
128
|
+
{ type: 2 /* FileChangeType.DELETED */, uri: file_txt.toString() },
|
|
134
129
|
]);
|
|
135
|
-
// Mark the test case as skipped so it stands out that the bogus branch got tested
|
|
136
|
-
this.skip();
|
|
137
130
|
}
|
|
138
131
|
});
|
|
139
|
-
function
|
|
140
|
-
return new
|
|
132
|
+
function createParcelFileSystemWatcherService() {
|
|
133
|
+
return new parcel_filesystem_service_1.ParcelFileSystemWatcherService({
|
|
141
134
|
verbose: true
|
|
142
135
|
});
|
|
143
136
|
}
|
|
@@ -149,4 +142,4 @@ describe('nsfw-filesystem-watcher', function () {
|
|
|
149
142
|
process.on('unhandledRejection', (reason) => {
|
|
150
143
|
console.error('Unhandled promise rejection: ' + reason);
|
|
151
144
|
});
|
|
152
|
-
//# sourceMappingURL=
|
|
145
|
+
//# sourceMappingURL=parcel-filesystem-watcher.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-filesystem-watcher.spec.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-filesystem-watcher.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Options } from '@theia/core/shared/@parcel/watcher';
|
|
2
|
+
/**
|
|
3
|
+
* Inversify service identifier allowing extensions to override options passed to parcel by the file watcher.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ParcelWatcherOptions: unique symbol;
|
|
6
|
+
export type ParcelWatcherOptions = Options;
|
|
7
|
+
//# sourceMappingURL=parcel-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-options.d.ts","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-options.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC"}
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
16
|
// *****************************************************************************
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
18
|
+
exports.ParcelWatcherOptions = void 0;
|
|
19
19
|
/**
|
|
20
|
-
* Inversify service identifier allowing extensions to override options passed to
|
|
20
|
+
* Inversify service identifier allowing extensions to override options passed to parcel by the file watcher.
|
|
21
21
|
*/
|
|
22
|
-
exports.
|
|
23
|
-
//# sourceMappingURL=
|
|
22
|
+
exports.ParcelWatcherOptions = Symbol('ParcelWatcherOptions');
|
|
23
|
+
//# sourceMappingURL=parcel-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parcel-options.js","sourceRoot":"","sources":["../../../src/node/parcel-watcher/parcel-options.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8CAA8C;AAC9C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAIhF;;GAEG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/filesystem",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.55.0-next.25+2be612f8a",
|
|
4
4
|
"description": "Theia - FileSystem Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.
|
|
6
|
+
"@theia/core": "1.55.0-next.25+2be612f8a",
|
|
7
7
|
"@types/body-parser": "^1.17.0",
|
|
8
8
|
"@types/multer": "^1.4.7",
|
|
9
|
-
"@types/rimraf": "^2.0.2",
|
|
10
9
|
"@types/tar-fs": "^1.16.1",
|
|
11
10
|
"async-mutex": "^0.3.1",
|
|
12
11
|
"body-parser": "^1.18.3",
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
"http-status-codes": "^1.3.0",
|
|
15
14
|
"minimatch": "^5.1.0",
|
|
16
15
|
"multer": "1.4.4-lts.1",
|
|
17
|
-
"rimraf": "^
|
|
16
|
+
"rimraf": "^5.0.0",
|
|
18
17
|
"stat-mode": "^1.0.0",
|
|
19
18
|
"tar-fs": "^1.16.2",
|
|
20
19
|
"trash": "^7.2.0",
|
|
@@ -78,5 +77,5 @@
|
|
|
78
77
|
"nyc": {
|
|
79
78
|
"extends": "../../configs/nyc.json"
|
|
80
79
|
},
|
|
81
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "2be612f8a7efb90c1183ba47f0897040925b304a"
|
|
82
81
|
}
|
|
@@ -21,7 +21,7 @@ import { FileStatNode, DirNode, FileNode } from './file-tree';
|
|
|
21
21
|
import { LocationService } from '../location';
|
|
22
22
|
import { LabelProvider } from '@theia/core/lib/browser/label-provider';
|
|
23
23
|
import { FileService } from '../file-service';
|
|
24
|
-
import { FileOperationError, FileOperationResult, FileChangesEvent, FileChangeType, FileChange
|
|
24
|
+
import { FileOperationError, FileOperationResult, FileChangesEvent, FileChangeType, FileChange } from '../../common/files';
|
|
25
25
|
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
26
26
|
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
27
27
|
import { FileSystemUtils } from '../../common';
|
|
@@ -45,7 +45,6 @@ export class FileTreeModel extends CompressedTreeModel implements LocationServic
|
|
|
45
45
|
protected override init(): void {
|
|
46
46
|
super.init();
|
|
47
47
|
this.toDispose.push(this.fileService.onDidFilesChange(changes => this.onFilesChanged(changes)));
|
|
48
|
-
this.toDispose.push(this.fileService.onDidRunOperation(event => this.onDidMove(event)));
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
get location(): URI | undefined {
|
|
@@ -92,23 +91,6 @@ export class FileTreeModel extends CompressedTreeModel implements LocationServic
|
|
|
92
91
|
}
|
|
93
92
|
}
|
|
94
93
|
|
|
95
|
-
/**
|
|
96
|
-
* to workaround https://github.com/Axosoft/nsfw/issues/42
|
|
97
|
-
*/
|
|
98
|
-
protected onDidMove(event: FileOperationEvent): void {
|
|
99
|
-
if (!event.isOperation(FileOperation.MOVE)) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
if (event.resource.parent.toString() === event.target.resource.parent.toString()) {
|
|
103
|
-
// file rename
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
this.refreshAffectedNodes([
|
|
107
|
-
event.resource,
|
|
108
|
-
event.target.resource
|
|
109
|
-
]);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
94
|
protected onFilesChanged(changes: FileChangesEvent): void {
|
|
113
95
|
if (!this.refreshAffectedNodes(this.getAffectedUris(changes)) && this.isRootAffected(changes)) {
|
|
114
96
|
this.refresh();
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
import { injectable, inject } from '@theia/core/shared/inversify';
|
|
17
17
|
import { ILogger } from '@theia/core/lib/common/logger';
|
|
18
|
-
import
|
|
18
|
+
import { rimraf } from 'rimraf';
|
|
19
19
|
|
|
20
20
|
export interface DownloadStorageItem {
|
|
21
21
|
file: string;
|
|
@@ -70,10 +70,8 @@ export class FileDownloadCache {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
protected deleteRecursively(pathToDelete: string): void {
|
|
73
|
-
rimraf(pathToDelete
|
|
74
|
-
|
|
75
|
-
this.logger.warn(`An error occurred while deleting the temporary data from the disk. Cannot clean up: ${pathToDelete}.`, error);
|
|
76
|
-
}
|
|
73
|
+
rimraf(pathToDelete).catch(error => {
|
|
74
|
+
this.logger.warn(`An error occurred while deleting the temporary data from the disk. Cannot clean up: ${pathToDelete}.`, error);
|
|
77
75
|
});
|
|
78
76
|
}
|
|
79
77
|
|