Skip to content

Commit 23dfbab

Browse files
author
Benjamin Pasero
committed
web - lift backupfileservice to common
1 parent a67d4ae commit 23dfbab

6 files changed

Lines changed: 12 additions & 73 deletions

File tree

src/vs/workbench/browser/web.simpleservices.ts

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@
55

66
import { URI } from 'vs/base/common/uri';
77
import * as browser from 'vs/base/browser/browser';
8-
import { IBackupFileService, IResolvedBackup } from 'vs/workbench/services/backup/common/backup';
9-
import { ITextSnapshot } from 'vs/editor/common/model';
10-
import { createTextBufferFactoryFromSnapshot } from 'vs/editor/common/model/textModel';
11-
import { keys } from 'vs/base/common/map';
128
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
139
import { Emitter, Event } from 'vs/base/common/event';
1410
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
@@ -55,68 +51,6 @@ import { ClassifiedEvent, StrictPropertyCheck, GDPRClassification } from 'vs/pla
5551
import { IProcessEnvironment } from 'vs/base/common/platform';
5652
import { toStoreData, restoreRecentlyOpened } from 'vs/platform/history/common/historyStorage';
5753

58-
//#region Backup File
59-
60-
export class SimpleBackupFileService implements IBackupFileService {
61-
62-
_serviceBrand: any;
63-
64-
private backups: Map<string, ITextSnapshot> = new Map();
65-
66-
hasBackups(): Promise<boolean> {
67-
return Promise.resolve(this.backups.size > 0);
68-
}
69-
70-
loadBackupResource(resource: URI): Promise<URI | undefined> {
71-
const backupResource = this.toBackupResource(resource);
72-
if (this.backups.has(backupResource.toString())) {
73-
return Promise.resolve(backupResource);
74-
}
75-
76-
return Promise.resolve(undefined);
77-
}
78-
79-
backupResource<T extends object>(resource: URI, content: ITextSnapshot, versionId?: number, meta?: T): Promise<void> {
80-
const backupResource = this.toBackupResource(resource);
81-
this.backups.set(backupResource.toString(), content);
82-
83-
return Promise.resolve();
84-
}
85-
86-
resolveBackupContent<T extends object>(backupResource: URI): Promise<IResolvedBackup<T>> {
87-
const snapshot = this.backups.get(backupResource.toString());
88-
if (snapshot) {
89-
return Promise.resolve({ value: createTextBufferFactoryFromSnapshot(snapshot) });
90-
}
91-
92-
return Promise.reject('Unexpected backup resource to resolve');
93-
}
94-
95-
getWorkspaceFileBackups(): Promise<URI[]> {
96-
return Promise.resolve(keys(this.backups).map(key => URI.parse(key)));
97-
}
98-
99-
discardResourceBackup(resource: URI): Promise<void> {
100-
this.backups.delete(this.toBackupResource(resource).toString());
101-
102-
return Promise.resolve();
103-
}
104-
105-
discardAllWorkspaceBackups(): Promise<void> {
106-
this.backups.clear();
107-
108-
return Promise.resolve();
109-
}
110-
111-
toBackupResource(resource: URI): URI {
112-
return resource;
113-
}
114-
}
115-
116-
registerSingleton(IBackupFileService, SimpleBackupFileService, true);
117-
118-
//#endregion
119-
12054
//#region Clipboard
12155

12256
export class SimpleClipboardService implements IClipboardService {

src/vs/workbench/services/backup/node/backupFileService.ts renamed to src/vs/workbench/services/backup/common/backupFileService.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import { join } from 'vs/base/common/path';
77
import { joinPath } from 'vs/base/common/resources';
8-
import { createHash } from 'crypto';
98
import { URI } from 'vs/base/common/uri';
9+
import { hash } from 'vs/base/common/hash';
1010
import { coalesce } from 'vs/base/common/arrays';
1111
import { equals, deepClone } from 'vs/base/common/objects';
1212
import { ResourceQueue } from 'vs/base/common/async';
@@ -421,7 +421,12 @@ export class InMemoryBackupFileService implements IBackupFileService {
421421
*/
422422
export function hashPath(resource: URI): string {
423423
const str = resource.scheme === Schemas.file || resource.scheme === Schemas.untitled ? resource.fsPath : resource.toString();
424-
return createHash('md5').update(str).digest('hex');
424+
if (typeof require !== 'undefined') {
425+
const _crypto: typeof crypto = require.__$__nodeRequire('crypto');
426+
return _crypto['createHash']('md5').update(str).digest('hex');
427+
}
428+
429+
return hash(str).toString(16);
425430
}
426431

427432
registerSingleton(IBackupFileService, BackupFileService);

src/vs/workbench/services/backup/test/node/backupFileService.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import * as fs from 'fs';
1111
import * as path from 'vs/base/common/path';
1212
import * as pfs from 'vs/base/node/pfs';
1313
import { URI } from 'vs/base/common/uri';
14-
import { BackupFileService, BackupFilesModel, hashPath } from 'vs/workbench/services/backup/node/backupFileService';
14+
import { BackupFileService, BackupFilesModel, hashPath } from 'vs/workbench/services/backup/common/backupFileService';
1515
import { TextModel, createTextBufferFactory } from 'vs/editor/common/model/textModel';
1616
import { getRandomTestPath } from 'vs/base/test/node/testUtils';
1717
import { DefaultEndOfLine } from 'vs/editor/common/model';

src/vs/workbench/services/workspace/electron-browser/workspaceEditingService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { ConfigurationScope, IConfigurationRegistry, Extensions as Configuration
1717
import { Registry } from 'vs/platform/registry/common/platform';
1818
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
1919
import { IBackupFileService } from 'vs/workbench/services/backup/common/backup';
20-
import { BackupFileService } from 'vs/workbench/services/backup/node/backupFileService';
20+
import { BackupFileService } from 'vs/workbench/services/backup/common/backupFileService';
2121
import { ICommandService } from 'vs/platform/commands/common/commands';
2222
import { distinct } from 'vs/base/common/arrays';
2323
import { isLinux, isWindows, isMacintosh } from 'vs/base/common/platform';

src/vs/workbench/workbench.main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ import 'vs/workbench/services/textmodelResolver/common/textModelResolverService'
112112
import 'vs/workbench/services/textfile/node/textFileService';
113113
import 'vs/workbench/services/dialogs/browser/fileDialogService';
114114
import 'vs/workbench/services/dialogs/electron-browser/dialogService';
115-
import 'vs/workbench/services/backup/node/backupFileService';
115+
import 'vs/workbench/services/backup/common/backupFileService';
116116
import 'vs/workbench/services/editor/browser/editorService';
117117
import 'vs/workbench/services/history/browser/history';
118118
import 'vs/workbench/services/activity/browser/activityService';

src/vs/workbench/workbench.web.main.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ import 'vs/workbench/services/textmodelResolver/common/textModelResolverService'
111111
import 'vs/workbench/services/textfile/browser/textFileService';
112112
import 'vs/workbench/services/dialogs/browser/fileDialogService';
113113
// import 'vs/workbench/services/dialogs/electron-browser/dialogService';
114-
// import 'vs/workbench/services/backup/node/backupFileService';
114+
import 'vs/workbench/services/backup/common/backupFileService';
115115
import 'vs/workbench/services/editor/browser/editorService';
116116
import 'vs/workbench/services/history/browser/history';
117117
import 'vs/workbench/services/activity/browser/activityService';
@@ -222,7 +222,7 @@ import 'vs/workbench/contrib/files/browser/files.contribution';
222222
import 'vs/workbench/contrib/backup/common/backup.contribution';
223223

224224
// Stats
225-
// import 'vs/workbench/contrib/stats/node/stats.contribution';
225+
// import 'vs/workbench/contrib/stats/electron-browser/stats.contribution';
226226

227227
// Rapid Render Splash
228228
// import 'vs/workbench/contrib/splash/electron-browser/partsSplash.contribution';

0 commit comments

Comments
 (0)