提交 cb05d8fd 编写于 作者: M Matt Bierner

Strict null checks

上级 cf4e17cd
......@@ -79,6 +79,7 @@
"./vs/base/node/ports.ts",
"./vs/base/node/processes.ts",
"./vs/base/node/proxy.ts",
"./vs/base/node/ps.ts",
"./vs/base/node/request.ts",
"./vs/base/node/stats.ts",
"./vs/base/node/storage.ts",
......@@ -112,6 +113,7 @@
"./vs/code/electron-browser/issue/issueReporterModel.ts",
"./vs/code/electron-browser/issue/issueReporterPage.ts",
"./vs/code/electron-browser/issue/issueReporterUtil.ts",
"./vs/code/electron-browser/processExplorer/processExplorerMain.ts",
"./vs/code/electron-browser/sharedProcess/contrib/contributions.ts",
"./vs/code/electron-browser/sharedProcess/contrib/languagePackCachedDataCleaner.ts",
"./vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts",
......@@ -494,6 +496,7 @@
"./vs/platform/telemetry/node/commonProperties.ts",
"./vs/platform/telemetry/node/telemetryIpc.ts",
"./vs/platform/telemetry/node/telemetryNodeUtils.ts",
"./vs/platform/telemetry/node/workbenchCommonProperties.ts",
"./vs/platform/theme/common/colorRegistry.ts",
"./vs/platform/theme/common/styler.ts",
"./vs/platform/theme/common/themeService.ts",
......@@ -502,6 +505,7 @@
"./vs/platform/update/electron-main/abstractUpdateService.ts",
"./vs/platform/update/electron-main/updateService.darwin.ts",
"./vs/platform/update/electron-main/updateService.linux.ts",
"./vs/platform/update/electron-main/updateService.snap.ts",
"./vs/platform/update/node/update.config.contribution.ts",
"./vs/platform/update/node/updateIpc.ts",
"./vs/platform/url/common/url.ts",
......@@ -571,6 +575,7 @@
"./vs/workbench/parts/emmet/test/electron-browser/emmetAction.test.ts",
"./vs/workbench/parts/execution/common/execution.ts",
"./vs/workbench/parts/execution/electron-browser/terminal.ts",
"./vs/workbench/parts/execution/electron-browser/terminalService.ts",
"./vs/workbench/parts/extensions/common/extensionQuery.ts",
"./vs/workbench/parts/extensions/common/extensions.ts",
"./vs/workbench/parts/extensions/common/extensionsFileTemplate.ts",
......@@ -591,6 +596,7 @@
"./vs/workbench/parts/output/common/outputLinkProvider.ts",
"./vs/workbench/parts/performance/electron-browser/stats.ts",
"./vs/workbench/parts/preferences/common/smartSnippetInserter.ts",
"./vs/workbench/parts/relauncher/electron-browser/relauncher.contribution.ts",
"./vs/workbench/parts/scm/common/scm.ts",
"./vs/workbench/parts/scm/electron-browser/scmUtil.ts",
"./vs/workbench/parts/search/common/constants.ts",
......@@ -617,6 +623,7 @@
"./vs/workbench/parts/terminal/node/terminalEnvironment.ts",
"./vs/workbench/parts/terminal/node/terminalProcess.ts",
"./vs/workbench/parts/terminal/node/terminalProcessExtHostProxy.ts",
"./vs/workbench/parts/terminal/node/windowsShellHelper.ts",
"./vs/workbench/parts/url/electron-browser/url.contribution.ts",
"./vs/workbench/parts/webview/electron-browser/webviewProtocols.ts",
"./vs/workbench/parts/welcome/gettingStarted/electron-browser/gettingStarted.ts",
......@@ -695,10 +702,7 @@
"./vs/workbench/services/themes/common/workbenchThemeService.ts",
"./vs/workbench/services/title/common/titleService.ts",
"./vs/workbench/services/workspace/common/workspaceEditing.ts",
"./vs/workbench/test/electron-browser/api/mock.ts",
"./vs/workbench/parts/terminal/node/windowsShellHelper.ts",
"./vs/base/node/ps.ts",
"./vs/code/electron-browser/processExplorer/processExplorerMain.ts"
"./vs/workbench/test/electron-browser/api/mock.ts"
],
"exclude": [
"./typings/require-monaco.d.ts"
......
......@@ -14,7 +14,7 @@ export function getComparisonKey(resource: URI): string {
return hasToIgnoreCase(resource) ? resource.toString().toLowerCase() : resource.toString();
}
export function hasToIgnoreCase(resource: URI): boolean {
export function hasToIgnoreCase(resource: URI | undefined): boolean {
// A file scheme resource is in the same platform as code, so ignore case for non linux platforms
// Resource can be from another platform. Lowering the case as an hack. Should come from File system provider
return resource && resource.scheme === Schemas.file ? !isLinux : true;
......@@ -45,7 +45,7 @@ function isEqualAuthority(a1: string, a2: string, ignoreCase?: boolean) {
return a1 === a2 || ignoreCase && a1 && a2 && equalsIgnoreCase(a1, a2);
}
export function isEqual(first: URI, second: URI, ignoreCase = hasToIgnoreCase(first)): boolean {
export function isEqual(first: URI | undefined, second: URI | undefined, ignoreCase = hasToIgnoreCase(first)): boolean {
const identityEquals = (first === second);
if (identityEquals) {
return true;
......
......@@ -132,7 +132,7 @@ export async function main(argv: string[]): Promise<any> {
child.stdout.on('data', (data: Buffer) => console.log(data.toString('utf8').trim()));
child.stderr.on('data', (data: Buffer) => console.log(data.toString('utf8').trim()));
return new TPromise<void>(c => child.once('exit', () => c(null)));
return new TPromise<void>(c => child.once('exit', () => c()));
});
}
......
......@@ -22,7 +22,7 @@ export function resolveWorkbenchCommonProperties(storageService: IStorageService
// __GDPR__COMMON__ "common.firstSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.firstSessionDate'] = getOrCreateFirstSessionDate(storageService);
// __GDPR__COMMON__ "common.lastSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.lastSessionDate'] = lastSessionDate;
result['common.lastSessionDate'] = lastSessionDate || '';
// __GDPR__COMMON__ "common.isNewSession" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
result['common.isNewSession'] = !lastSessionDate ? '1' : '0';
// __GDPR__COMMON__ "common.instanceId" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
......
......@@ -146,6 +146,9 @@ export class SnapUpdateService extends AbstractUpdateService2 {
) {
super(lifecycleService, environmentService, logService);
if (typeof process.env.SNAP === 'undefined') {
throw new Error(`'SNAP' environment variable not set`);
}
const watcher = watch(path.dirname(process.env.SNAP));
const onChange = fromNodeEventEmitter(watcher, 'change', (_, fileName: string) => fileName);
const onCurrentChange = filterEvent(onChange, n => n === 'current');
......@@ -190,6 +193,10 @@ export class SnapUpdateService extends AbstractUpdateService2 {
protected doQuitAndInstall(): void {
this.logService.trace('update#quitAndInstall(): running raw#quitAndInstall()');
if (typeof process.env.SNAP === 'undefined') {
return;
}
// Allow 3 seconds for VS Code to close
spawn('bash', ['-c', path.join(process.env.SNAP, `usr/share/${product.applicationName}/snapUpdate.sh`)], {
detached: true,
......
......@@ -67,7 +67,7 @@ export class WinTerminalService implements ITerminalService {
const cmd = cp.spawn(WinTerminalService.CMD, cmdArgs, options);
cmd.on('error', e);
c(null);
c();
});
}
......@@ -100,7 +100,7 @@ export class WinTerminalService implements ITerminalService {
const env = cwd ? { cwd: cwd } : void 0;
const child = spawner.spawn(command, cmdArgs, env);
child.on('error', e);
child.on('exit', () => c(null));
child.on('exit', () => c());
});
}
......@@ -176,7 +176,7 @@ export class MacTerminalService implements ITerminalService {
});
osa.on('exit', (code: number) => {
if (code === 0) { // OK
c(null);
c();
} else {
if (stderr) {
const lines = stderr.split('\n', 1);
......@@ -199,7 +199,7 @@ export class MacTerminalService implements ITerminalService {
return new Promise<void>((c, e) => {
const child = spawner.spawn('/usr/bin/open', ['-a', terminalApp, cwd]);
child.on('error', e);
child.on('exit', () => c(null));
child.on('exit', () => c());
});
}
}
......@@ -262,7 +262,7 @@ export class LinuxTerminalService implements ITerminalService {
});
cmd.on('exit', (code: number) => {
if (code === 0) { // OK
c(null);
c();
} else {
if (stderr) {
const lines = stderr.split('\n', 1);
......@@ -285,7 +285,7 @@ export class LinuxTerminalService implements ITerminalService {
execPromise.then(exec => {
const child = spawner.spawn(exec, [], env);
child.on('error', e);
child.on('exit', () => c(null));
child.on('exit', () => c());
});
});
}
......
......@@ -43,7 +43,7 @@ export class SettingsChangeRelauncher extends Disposable implements IWorkbenchCo
private fileWatcherExclude: object;
private legacyStorage: boolean;
private firstFolderResource: URI;
private firstFolderResource?: URI;
private extensionHostRestarter: RunOnceScheduler;
private onDidChangeWorkspaceFoldersUnbind: IDisposable;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册