🆙 chokidar@3.4.2 (#106212)

This commit is contained in:
Benjamin Pasero 2020-09-07 08:42:29 +02:00 committed by GitHub
parent 7458d313c3
commit 0de4890a28
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 74 additions and 63 deletions

View file

@ -48,7 +48,7 @@
},
"dependencies": {
"applicationinsights": "1.0.8",
"chokidar": "3.2.3",
"chokidar": "3.4.2",
"graceful-fs": "4.2.3",
"http-proxy-agent": "^2.1.0",
"https-proxy-agent": "^2.2.3",

View file

@ -3,7 +3,7 @@
"version": "0.0.0",
"dependencies": {
"applicationinsights": "1.0.8",
"chokidar": "3.2.3",
"chokidar": "3.4.2",
"cookie": "^0.4.0",
"graceful-fs": "4.2.3",
"http-proxy-agent": "^2.1.0",

View file

@ -69,10 +69,10 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
chokidar@3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.2.3.tgz#b9270a565d14f02f6bfdd537a6a2bbf5549b8c8c"
integrity sha512-GtrxGuRf6bzHQmXWRepvsGnXpkQkVU+D2/9a7dAe4a7v1NhrfZOZ2oKf76M3nOs46fFYL8D+Q8JYA4GYeJ8Cjw==
chokidar@3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
dependencies:
anymatch "~3.1.1"
braces "~3.0.2"
@ -80,9 +80,9 @@ chokidar@3.2.3:
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.2.0"
readdirp "~3.4.0"
optionalDependencies:
fsevents "~2.1.1"
fsevents "~2.1.2"
cookie@^0.4.0:
version "0.4.0"
@ -155,10 +155,10 @@ fs-extra@^7.0.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
fsevents@~2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.1.tgz#74c64e21df71721845d0c44fe54b7f56b82995a9"
integrity sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==
fsevents@~2.1.2:
version "2.1.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
glob-parent@~5.1.0:
version "5.1.0"
@ -316,17 +316,22 @@ picomatch@^2.0.4:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
picomatch@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
readdirp@~3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839"
integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==
readdirp@~3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
dependencies:
picomatch "^2.0.4"
picomatch "^2.2.1"
semver-umd@^5.5.7:
version "5.5.7"

View file

@ -856,6 +856,7 @@ export function whenProviderRegistered(file: URI, fileService: IFileService): Pr
if (fileService.canHandleResource(URI.from({ scheme: file.scheme }))) {
return Promise.resolve();
}
return new Promise((c, e) => {
const disposable = fileService.onDidChangeFileSystemProviderRegistrations(e => {
if (e.scheme === file.scheme && e.added) {

View file

@ -85,7 +85,7 @@ export class FileWatcher extends Disposable {
}
// Handle emit through delayer to accommodate for bulk changes and thus reduce spam
this.fileChangesDelayer.trigger(() => {
this.fileChangesDelayer.trigger(async () => {
const fileChanges = this.fileChangesBuffer;
this.fileChangesBuffer = [];
@ -103,8 +103,6 @@ export class FileWatcher extends Disposable {
if (normalizedFileChanges.length > 0) {
this.onDidFilesChange(normalizedFileChanges);
}
return Promise.resolve();
});
}

View file

@ -22,8 +22,8 @@ nsfwActionToRawChangeType[nsfw.actions.MODIFIED] = FileChangeType.UPDATED;
nsfwActionToRawChangeType[nsfw.actions.DELETED] = FileChangeType.DELETED;
interface IWatcherObjet {
start(): any;
stop(): any;
start(): void;
stop(): void;
}
interface IPathWatcher {
@ -142,7 +142,7 @@ export class NsfwWatcherService implements IWatcherService {
}
// Delay and send buffer
fileEventDelayer.trigger(() => {
fileEventDelayer.trigger(async () => {
const events = undeliveredFileEvents;
undeliveredFileEvents = [];
@ -169,8 +169,6 @@ export class NsfwWatcherService implements IWatcherService {
this.log(` >> normalized ${r.type === FileChangeType.ADDED ? '[ADDED]' : r.type === FileChangeType.DELETED ? '[DELETED]' : '[CHANGED]'} ${r.path}`);
});
}
return Promise.resolve(undefined);
});
}).then(watcher => {
this._pathWatchers[request.path].watcher = watcher;
@ -180,8 +178,7 @@ export class NsfwWatcherService implements IWatcherService {
});
}
public setRoots(roots: IWatcherRequest[]): Promise<void> {
const promises: Promise<void>[] = [];
async setRoots(roots: IWatcherRequest[]): Promise<void> {
const normalizedRoots = this._normalizeRoots(roots);
// Gather roots that are not currently being watched
@ -214,23 +211,19 @@ export class NsfwWatcherService implements IWatcherService {
this._pathWatchers[root.path].ignored = Array.isArray(root.excludes) ? root.excludes.map(ignored => glob.parse(ignored)) : [];
}
});
return Promise.all(promises).then(() => undefined);
}
public setVerboseLogging(enabled: boolean): Promise<void> {
async setVerboseLogging(enabled: boolean): Promise<void> {
this._verboseLogging = enabled;
return Promise.resolve(undefined);
}
public stop(): Promise<void> {
async stop(): Promise<void> {
for (let path in this._pathWatchers) {
let watcher = this._pathWatchers[path];
watcher.ready.then(watcher => watcher.stop());
delete this._pathWatchers[path];
}
this._pathWatchers = Object.create(null);
return Promise.resolve();
}
/**

View file

@ -10,11 +10,14 @@ import { NsfwWatcherService } from 'vs/platform/files/node/watcher/nsfw/nsfwWatc
import { IWatcherRequest } from 'vs/platform/files/node/watcher/nsfw/watcher';
class TestNsfwWatcherService extends NsfwWatcherService {
public normalizeRoots(roots: string[]): string[] {
normalizeRoots(roots: string[]): string[] {
// Work with strings as paths to simplify testing
const requests: IWatcherRequest[] = roots.map(r => {
return { path: r, excludes: [] };
});
return this._normalizeRoots(requests).map(r => r.path);
}
}

View file

@ -23,7 +23,7 @@ process.noAsar = true; // disable ASAR support in watcher process
interface IWatcher {
requests: ExtendedWatcherRequest[];
stop(): any;
stop(): Promise<void>;
}
interface ExtendedWatcherRequest extends IWatcherRequest {
@ -61,13 +61,11 @@ export class ChokidarWatcherService implements IWatcherService {
return this.onWatchEvent;
}
setVerboseLogging(enabled: boolean): Promise<void> {
async setVerboseLogging(enabled: boolean): Promise<void> {
this._verboseLogging = enabled;
return Promise.resolve();
}
setRoots(requests: IWatcherRequest[]): Promise<void> {
async setRoots(requests: IWatcherRequest[]): Promise<void> {
const watchers = Object.create(null);
const newRequests: string[] = [];
@ -86,7 +84,7 @@ export class ChokidarWatcherService implements IWatcherService {
// stop all old watchers
for (const path in this._watchers) {
this._watchers[path].stop();
await this._watchers[path].stop();
}
// start all new watchers
@ -96,7 +94,6 @@ export class ChokidarWatcherService implements IWatcherService {
}
this._watchers = watchers;
return Promise.resolve();
}
// for test purposes
@ -166,13 +163,13 @@ export class ChokidarWatcherService implements IWatcherService {
const watcher: IWatcher = {
requests,
stop: () => {
stop: async () => {
try {
if (this._verboseLogging) {
this.log(`Stop watching: ${basePath}]`);
}
if (chokidarWatcher) {
chokidarWatcher.close();
await chokidarWatcher.close();
this._watcherCount--;
chokidarWatcher = null;
}
@ -248,8 +245,9 @@ export class ChokidarWatcherService implements IWatcherService {
undeliveredFileEvents.push(event);
if (fileEventDelayer) {
// Delay and send buffer
fileEventDelayer.trigger(() => {
fileEventDelayer.trigger(async () => {
const events = undeliveredFileEvents;
undeliveredFileEvents = [];
@ -264,7 +262,7 @@ export class ChokidarWatcherService implements IWatcherService {
});
}
return Promise.resolve(undefined);
return undefined;
});
}
});
@ -291,15 +289,13 @@ export class ChokidarWatcherService implements IWatcherService {
return watcher;
}
stop(): Promise<void> {
async stop(): Promise<void> {
for (const path in this._watchers) {
const watcher = this._watchers[path];
watcher.stop();
await watcher.stop();
}
this._watchers = Object.create(null);
return Promise.resolve();
}
private log(message: string) {

View file

@ -131,7 +131,7 @@ export class OutOfProcessWin32FolderWatcher {
this.logCallback({ type: 'trace', message: `[File Watcher (C#)] ${message}` });
}
public dispose(): void {
dispose(): void {
if (this.handle) {
this.handle.kill();
this.handle = undefined;

View file

@ -26,16 +26,16 @@ export class NullFileSystemProvider implements IFileSystemProvider {
constructor(private disposableFactory: () => IDisposable = () => Disposable.None) { }
watch(resource: URI, opts: IWatchOptions): IDisposable { return this.disposableFactory(); }
stat(resource: URI): Promise<IStat> { return Promise.resolve(undefined!); }
mkdir(resource: URI): Promise<void> { return Promise.resolve(undefined!); }
readdir(resource: URI): Promise<[string, FileType][]> { return Promise.resolve(undefined!); }
delete(resource: URI, opts: FileDeleteOptions): Promise<void> { return Promise.resolve(undefined!); }
rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void> { return Promise.resolve(undefined!); }
copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void> { return Promise.resolve(undefined!); }
readFile?(resource: URI): Promise<Uint8Array> { return Promise.resolve(undefined!); }
writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void> { return Promise.resolve(undefined!); }
open?(resource: URI, opts: FileOpenOptions): Promise<number> { return Promise.resolve(undefined!); }
close?(fd: number): Promise<void> { return Promise.resolve(undefined!); }
read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return Promise.resolve(undefined!); }
write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return Promise.resolve(undefined!); }
async stat(resource: URI): Promise<IStat> { return undefined!; }
async mkdir(resource: URI): Promise<void> { return undefined; }
async readdir(resource: URI): Promise<[string, FileType][]> { return undefined!; }
async delete(resource: URI, opts: FileDeleteOptions): Promise<void> { return undefined; }
async rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void> { return undefined; }
async copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void> { return undefined; }
async readFile?(resource: URI): Promise<Uint8Array> { return undefined!; }
async writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void> { return undefined; }
async open?(resource: URI, opts: FileOpenOptions): Promise<number> { return undefined!; }
async close?(fd: number): Promise<void> { return undefined; }
async read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return undefined!; }
async write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number> { return undefined!; }
}

View file

@ -1629,7 +1629,7 @@ cheerio@^1.0.0-rc.1:
lodash "^4.15.0"
parse5 "^3.0.1"
chokidar@*, chokidar@3.2.3:
chokidar@*:
version "3.2.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.2.3.tgz#b9270a565d14f02f6bfdd537a6a2bbf5549b8c8c"
integrity sha512-GtrxGuRf6bzHQmXWRepvsGnXpkQkVU+D2/9a7dAe4a7v1NhrfZOZ2oKf76M3nOs46fFYL8D+Q8JYA4GYeJ8Cjw==
@ -1644,6 +1644,21 @@ chokidar@*, chokidar@3.2.3:
optionalDependencies:
fsevents "~2.1.1"
chokidar@3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
dependencies:
anymatch "~3.1.1"
braces "~3.0.2"
glob-parent "~5.1.0"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.4.0"
optionalDependencies:
fsevents "~2.1.2"
chokidar@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.0.tgz#5fcb70d0b28ebe0867eb0f09d5f6a08f29a1efa0"