Skip to content

Commit 43de37c

Browse files
committed
strict null checks: several ipc utils
1 parent f695de3 commit 43de37c

12 files changed

Lines changed: 54 additions & 31 deletions

File tree

src/tsconfig.strictNullChecks.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"./vs/base/common/json.ts",
5656
"./vs/base/common/jsonEdit.ts",
5757
"./vs/base/common/jsonFormatter.ts",
58+
"./vs/base/common/uriIpc.ts",
5859
"./vs/base/node/console.ts",
5960
"./vs/base/node/crypto.ts",
6061
"./vs/base/node/decoder.ts",
@@ -373,6 +374,7 @@
373374
"./vs/platform/contextkey/browser/contextKeyService.ts",
374375
"./vs/platform/contextkey/common/contextkey.ts",
375376
"./vs/platform/dialogs/common/dialogs.ts",
377+
"./vs/platform/dialogs/node/dialogIpc.ts",
376378
"./vs/platform/dialogs/node/dialogService.ts",
377379
"./vs/platform/download/common/download.ts",
378380
"./vs/platform/editor/common/editor.ts",
@@ -416,12 +418,15 @@
416418
"./vs/platform/lifecycle/electron-browser/lifecycleService.ts",
417419
"./vs/platform/lifecycle/electron-main/lifecycleMain.ts",
418420
"./vs/platform/localizations/common/localizations.ts",
421+
"./vs/platform/localizations/node/localizationsIpc.ts",
419422
"./vs/platform/log/common/bufferLog.ts",
420423
"./vs/platform/log/common/log.ts",
424+
"./vs/platform/log/node/logIpc.ts",
421425
"./vs/platform/log/node/spdlogService.ts",
422426
"./vs/platform/markers/common/markerService.ts",
423427
"./vs/platform/markers/common/markers.ts",
424428
"./vs/platform/menubar/common/menubar.ts",
429+
"./vs/platform/menubar/node/menubarIpc.ts",
425430
"./vs/platform/node/minimalTranslations.ts",
426431
"./vs/platform/node/package.ts",
427432
"./vs/platform/node/product.ts",
@@ -446,6 +451,7 @@
446451
"./vs/platform/telemetry/common/telemetry.ts",
447452
"./vs/platform/telemetry/common/telemetryService.ts",
448453
"./vs/platform/telemetry/common/telemetryUtils.ts",
454+
"./vs/platform/telemetry/node/telemetryIpc.ts",
449455
"./vs/platform/telemetry/node/telemetryNodeUtils.ts",
450456
"./vs/platform/theme/common/colorRegistry.ts",
451457
"./vs/platform/theme/common/styler.ts",
@@ -455,19 +461,23 @@
455461
"./vs/platform/update/electron-main/abstractUpdateService.ts",
456462
"./vs/platform/update/electron-main/updateService.darwin.ts",
457463
"./vs/platform/update/electron-main/updateService.linux.ts",
464+
"./vs/platform/update/node/updateIpc.ts",
458465
"./vs/platform/update/node/update.config.contribution.ts",
459466
"./vs/platform/url/common/url.ts",
460467
"./vs/platform/url/common/urlService.ts",
461468
"./vs/platform/url/electron-main/electronUrlListener.ts",
469+
"./vs/platform/url/node/urlIpc.ts",
462470
"./vs/platform/widget/common/contextScopedWidget.ts",
463471
"./vs/platform/windows/common/windows.ts",
464472
"./vs/platform/windows/electron-browser/windowService.ts",
465473
"./vs/platform/windows/electron-main/windows.ts",
474+
"./vs/platform/windows/node/windowsIpc.ts",
466475
"./vs/platform/workbench/common/contextkeys.ts",
467476
"./vs/platform/workspace/common/workspace.ts",
468477
"./vs/platform/workspace/test/common/testWorkspace.ts",
469478
"./vs/platform/workspaces/common/workspaces.ts",
470479
"./vs/platform/workspaces/node/workspaces.ts",
480+
"./vs/platform/workspaces/node/workspacesIpc.ts",
471481
"./vs/vscode.d.ts",
472482
"./vs/vscode.proposed.d.ts",
473483
"./vs/workbench/api/node/extHostExtensionActivator.ts",
@@ -585,7 +595,9 @@
585595
"./vs/workbench/services/extensions/node/rpcProtocol.ts",
586596
"./vs/workbench/services/files/node/watcher/common.ts",
587597
"./vs/workbench/services/files/node/watcher/nsfw/watcher.ts",
598+
"./vs/workbench/services/files/node/watcher/nsfw/watcherIpc.ts",
588599
"./vs/workbench/services/files/node/watcher/unix/watcher.ts",
600+
"./vs/workbench/services/files/node/watcher/unix/watcherIpc.ts",
589601
"./vs/workbench/services/files/node/watcher/win32/csharpWatcherService.ts",
590602
"./vs/workbench/services/files/node/watcher/win32/watcherService.ts",
591603
"./vs/workbench/services/files/test/electron-browser/utils.ts",

src/vs/platform/dialogs/node/dialogIpc.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ export class DialogChannel implements IDialogChannel {
2525

2626
call(command: string, args?: any[]): Thenable<any> {
2727
switch (command) {
28-
case 'show': return this.dialogService.show(args[0], args[1], args[2]);
29-
case 'confirm': return this.dialogService.confirm(args[0]);
28+
case 'show': return this.dialogService.show(args![0], args![1], args![2]);
29+
case 'confirm': return this.dialogService.confirm(args![0]);
3030
}
3131
return TPromise.wrapError(new Error('invalid command'));
3232
}

src/vs/platform/localizations/node/localizationsIpc.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@ export class LocalizationsChannel implements ILocalizationsChannel {
2929
case 'onDidLanguagesChange': return this.onDidLanguagesChange;
3030
}
3131

32-
throw new Error('No event found');
32+
throw new Error(`Event not found: ${event}`);
3333
}
3434

3535
call(command: string, arg?: any): Thenable<any> {
3636
switch (command) {
3737
case 'getLanguageIds': return this.service.getLanguageIds(arg);
3838
}
39-
return undefined;
39+
40+
throw new Error(`Call not found: ${command}`);
4041
}
4142
}
4243

src/vs/platform/log/node/logIpc.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@ export class LogLevelSetterChannel implements ILogLevelSetterChannel {
2929
case 'onDidChangeLogLevel': return this.onDidChangeLogLevel;
3030
}
3131

32-
throw new Error('No event found');
32+
throw new Error(`Event not found: ${event}`);
3333
}
3434

3535
call(command: string, arg?: any): TPromise<any> {
3636
switch (command) {
3737
case 'setLevel': this.service.setLevel(arg); return TPromise.as(null);
3838
}
39-
return undefined;
39+
40+
throw new Error(`Call not found: ${command}`);
4041
}
4142
}
4243

src/vs/platform/menubar/node/menubarIpc.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@ export class MenubarChannel implements IMenubarChannel {
1717
constructor(private service: IMenubarService) { }
1818

1919
listen<T>(event: string, arg?: any): Event<T> {
20-
throw new Error('No events');
20+
throw new Error(`Event not found: ${event}`);
2121
}
2222

2323
call(command: string, arg?: any): TPromise<any> {
2424
switch (command) {
2525
case 'updateMenubar': return this.service.updateMenubar(arg[0], arg[1]);
2626
}
27-
return undefined;
27+
28+
throw new Error(`Call not found: ${command}`);
2829
}
2930
}
3031

src/vs/platform/telemetry/node/telemetryIpc.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export class TelemetryAppenderChannel implements ITelemetryAppenderChannel {
2323
constructor(private appender: ITelemetryAppender) { }
2424

2525
listen<T>(event: string, arg?: any): Event<T> {
26-
throw new Error('No events');
26+
throw new Error(`Event not found: ${event}`);
2727
}
2828

2929
call(command: string, { eventName, data }: ITelemetryLog): Thenable<any> {
@@ -38,7 +38,7 @@ export class TelemetryAppenderClient implements ITelemetryAppender {
3838

3939
log(eventName: string, data?: any): any {
4040
this.channel.call('log', { eventName, data })
41-
.then(null, err => `Failed to log telemetry: ${console.warn(err)}`);
41+
.then(undefined, err => `Failed to log telemetry: ${console.warn(err)}`);
4242

4343
return TPromise.as(null);
4444
}

src/vs/platform/update/node/updateIpc.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class UpdateChannel implements IUpdateChannel {
3030
case 'onStateChange': return this.service.onStateChange;
3131
}
3232

33-
throw new Error('No event found');
33+
throw new Error(`Event not found: ${event}`);
3434
}
3535

3636
call(command: string, arg?: any): TPromise<any> {
@@ -42,7 +42,8 @@ export class UpdateChannel implements IUpdateChannel {
4242
case '_getInitialState': return TPromise.as(this.service.state);
4343
case 'isLatestVersion': return this.service.isLatestVersion();
4444
}
45-
return undefined;
45+
46+
throw new Error(`Call not found: ${command}`);
4647
}
4748
}
4849

src/vs/platform/url/node/urlIpc.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ export class URLServiceChannel implements IURLServiceChannel {
2020
constructor(private service: IURLService) { }
2121

2222
listen<T>(event: string, arg?: any): Event<T> {
23-
throw new Error('No events');
23+
throw new Error(`Event not found: ${event}`);
2424
}
2525

2626
call(command: string, arg?: any): Thenable<any> {
2727
switch (command) {
2828
case 'open': return this.service.open(URI.revive(arg));
2929
}
30-
return undefined;
30+
31+
throw new Error(`Call not found: ${command}`);
3132
}
3233
}
3334

@@ -56,14 +57,15 @@ export class URLHandlerChannel implements IURLHandlerChannel {
5657
constructor(private handler: IURLHandler) { }
5758

5859
listen<T>(event: string, arg?: any): Event<T> {
59-
throw new Error('No events');
60+
throw new Error(`Event not found: ${event}`);
6061
}
6162

6263
call(command: string, arg?: any): Thenable<any> {
6364
switch (command) {
6465
case 'handleURL': return this.handler.handleURL(URI.revive(arg));
6566
}
66-
return undefined;
67+
68+
throw new Error(`Call not found: ${command}`);
6769
}
6870
}
6971

src/vs/platform/windows/node/windowsIpc.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ export interface IWindowsChannel extends IChannel {
2929
call(command: 'showMessageBox', arg: [number, MessageBoxOptions]): Thenable<IMessageBoxResult>;
3030
call(command: 'showSaveDialog', arg: [number, SaveDialogOptions]): Thenable<string>;
3131
call(command: 'showOpenDialog', arg: [number, OpenDialogOptions]): Thenable<string[]>;
32-
call(command: 'reloadWindow', arg: [number, ParsedArgs]): Thenable<void>;
33-
call(command: 'openDevTools', arg: [number, IDevToolsOptions]): Thenable<void>;
32+
call(command: 'reloadWindow', arg: [number, ParsedArgs | undefined]): Thenable<void>;
33+
call(command: 'openDevTools', arg: [number, IDevToolsOptions | undefined]): Thenable<void>;
3434
call(command: 'toggleDevTools', arg: number): Thenable<void>;
3535
call(command: 'closeWorkspace', arg: number): Thenable<void>;
3636
call(command: 'enterWorkspace', arg: [number, string]): Thenable<IEnterWorkspaceResult>;
37-
call(command: 'createAndEnterWorkspace', arg: [number, IWorkspaceFolderCreationData[], string]): Thenable<IEnterWorkspaceResult>;
37+
call(command: 'createAndEnterWorkspace', arg: [number, IWorkspaceFolderCreationData[] | undefined, string | undefined]): Thenable<IEnterWorkspaceResult>;
3838
call(command: 'saveAndEnterWorkspace', arg: [number, string]): Thenable<IEnterWorkspaceResult>;
3939
call(command: 'toggleFullScreen', arg: number): Thenable<void>;
4040
call(command: 'setRepresentedFilename', arg: [number, string]): Thenable<void>;
@@ -59,8 +59,8 @@ export interface IWindowsChannel extends IChannel {
5959
call(command: 'onWindowTitleDoubleClick', arg: number): Thenable<void>;
6060
call(command: 'setDocumentEdited', arg: [number, boolean]): Thenable<void>;
6161
call(command: 'quit'): Thenable<void>;
62-
call(command: 'openWindow', arg: [number, URI[], { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }]): Thenable<void>;
63-
call(command: 'openNewWindow', arg: INewWindowOptions): Thenable<void>;
62+
call(command: 'openWindow', arg: [number, URI[], { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs } | undefined]): Thenable<void>;
63+
call(command: 'openNewWindow', arg?: INewWindowOptions): Thenable<void>;
6464
call(command: 'showWindow', arg: number): Thenable<void>;
6565
call(command: 'getWindows'): Thenable<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]>;
6666
call(command: 'getWindowCount'): Thenable<number>;
@@ -104,7 +104,7 @@ export class WindowsChannel implements IWindowsChannel {
104104
case 'onRecentlyOpenedChange': return this.onRecentlyOpenedChange;
105105
}
106106

107-
throw new Error('No event found');
107+
throw new Error(`Event not found: ${event}`);
108108
}
109109

110110
call(command: string, arg?: any): Thenable<any> {
@@ -123,7 +123,7 @@ export class WindowsChannel implements IWindowsChannel {
123123
case 'enterWorkspace': return this.service.enterWorkspace(arg[0], arg[1]);
124124
case 'createAndEnterWorkspace': {
125125
const rawFolders: IWorkspaceFolderCreationData[] = arg[1];
126-
let folders: IWorkspaceFolderCreationData[];
126+
let folders: IWorkspaceFolderCreationData[] | undefined = undefined;
127127
if (Array.isArray(rawFolders)) {
128128
folders = rawFolders.map(rawFolder => {
129129
return {
@@ -181,7 +181,8 @@ export class WindowsChannel implements IWindowsChannel {
181181
case 'openAboutDialog': return this.service.openAboutDialog();
182182
case 'resolveProxy': return this.service.resolveProxy(arg[0], arg[1]);
183183
}
184-
return undefined;
184+
185+
throw new Error(`Call not found: ${command}`);
185186
}
186187
}
187188

src/vs/platform/workspaces/node/workspacesIpc.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ export class WorkspacesChannel implements IWorkspacesChannel {
1919
constructor(private service: IWorkspacesMainService) { }
2020

2121
listen<T>(event: string, arg?: any): Event<T> {
22-
throw new Error('No events');
22+
throw new Error(`Event not found: ${event}`);
2323
}
2424

2525
call(command: string, arg?: any): Thenable<any> {
2626
switch (command) {
2727
case 'createWorkspace': {
2828
const rawFolders: IWorkspaceFolderCreationData[] = arg;
29-
let folders: IWorkspaceFolderCreationData[];
29+
let folders: IWorkspaceFolderCreationData[] | undefined = undefined;
3030
if (Array.isArray(rawFolders)) {
3131
folders = rawFolders.map(rawFolder => {
3232
return {
@@ -40,7 +40,7 @@ export class WorkspacesChannel implements IWorkspacesChannel {
4040
}
4141
}
4242

43-
return void 0;
43+
throw new Error(`Call not found: ${command}`);
4444
}
4545
}
4646

0 commit comments

Comments
 (0)