@opensumi/ide-storage 2.23.4 → 2.23.5-rc-1681807382.0

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.
@@ -1,14 +1,13 @@
1
- import { StorageResolverContribution, URI, IStorage, ClientAppContribution } from '@opensumi/ide-core-browser';
2
- export declare class DatabaseStorageContribution implements StorageResolverContribution, ClientAppContribution {
1
+ import { StorageResolverContribution, URI, IStorage } from '@opensumi/ide-core-browser';
2
+ export declare class DatabaseStorageContribution implements StorageResolverContribution {
3
3
  private workspaceStorage;
4
4
  private globalStorage;
5
5
  private appConfig;
6
6
  private workspaceService;
7
7
  private globalLocalStorage;
8
8
  private scopedLocalStorage;
9
- storage: IStorage;
9
+ private cache;
10
10
  resolve(storageId: URI): Promise<IStorage | undefined>;
11
11
  isBuiltinStorage(storageId: URI): boolean;
12
- onReconnect(): void;
13
12
  }
14
13
  //# sourceMappingURL=storage.contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/storage.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,EAC3B,GAAG,EACH,QAAQ,EACR,qBAAqB,EAMtB,MAAM,4BAA4B,CAAC;AAOpC,qBACa,2BAA4B,YAAW,2BAA2B,EAAE,qBAAqB;IAEpG,OAAO,CAAC,gBAAgB,CAAiB;IAGzC,OAAO,CAAC,aAAa,CAAiB;IAGtC,OAAO,CAAC,SAAS,CAAY;IAG7B,OAAO,CAAC,gBAAgB,CAAoB;IAG5C,OAAO,CAAC,kBAAkB,CAA8B;IAGxD,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO,EAAE,QAAQ,CAAC;IAEZ,OAAO,CAAC,SAAS,EAAE,GAAG;IAwC5B,gBAAgB,CAAC,SAAS,EAAE,GAAG;IAU/B,WAAW;CAKZ"}
1
+ {"version":3,"file":"storage.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/storage.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,EAC3B,GAAG,EACH,QAAQ,EAMT,MAAM,4BAA4B,CAAC;AAOpC,qBACa,2BAA4B,YAAW,2BAA2B;IAE7E,OAAO,CAAC,gBAAgB,CAAiB;IAGzC,OAAO,CAAC,aAAa,CAAiB;IAGtC,OAAO,CAAC,SAAS,CAAY;IAG7B,OAAO,CAAC,gBAAgB,CAAoB;IAG5C,OAAO,CAAC,kBAAkB,CAA8B;IAGxD,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO,CAAC,KAAK,CAAoC;IAE3C,OAAO,CAAC,SAAS,EAAE,GAAG;IA8C5B,gBAAgB,CAAC,SAAS,EAAE,GAAG;CAShC"}
@@ -8,33 +8,42 @@ const ide_workspace_1 = require("@opensumi/ide-workspace");
8
8
  const common_1 = require("../common");
9
9
  const storage_1 = require("./storage");
10
10
  let DatabaseStorageContribution = class DatabaseStorageContribution {
11
+ constructor() {
12
+ this.cache = new Map();
13
+ }
11
14
  async resolve(storageId) {
12
15
  const storageName = storageId.path.toString();
13
16
  let storage;
14
- if (storageId.scheme === ide_core_browser_1.STORAGE_SCHEMA.SCOPE) {
15
- // 如果是内置的 Storage,在初始化过程中采用 ScopedBrowserStorageService 代理
16
- if (this.isBuiltinStorage(storageId)) {
17
- storage = new storage_1.Storage(this.workspaceStorage, this.workspaceService, this.appConfig, storageName, this.scopedLocalStorage);
18
- }
19
- else {
20
- storage = new storage_1.Storage(this.workspaceStorage, this.workspaceService, this.appConfig, storageName);
21
- }
17
+ const cache = this.cache.get(storageId.toString());
18
+ if (cache) {
19
+ storage = cache;
22
20
  }
23
- else if (storageId.scheme === ide_core_browser_1.STORAGE_SCHEMA.GLOBAL) {
24
- if (this.isBuiltinStorage(storageId)) {
25
- // 如果是内置的 Storage,在初始化过程中采用 GlobalBrowserStorageService 代理
26
- storage = new storage_1.Storage(this.globalStorage, this.workspaceService, this.appConfig, storageName, this.globalLocalStorage);
21
+ else {
22
+ if (storageId.scheme === ide_core_browser_1.STORAGE_SCHEMA.SCOPE) {
23
+ // 如果是内置的 Storage,在初始化过程中采用 ScopedBrowserStorageService 代理
24
+ if (this.isBuiltinStorage(storageId)) {
25
+ storage = new storage_1.Storage(this.workspaceStorage, this.workspaceService, this.appConfig, storageName, false, this.scopedLocalStorage);
26
+ }
27
+ else {
28
+ storage = new storage_1.Storage(this.workspaceStorage, this.workspaceService, this.appConfig, storageName, false);
29
+ }
30
+ }
31
+ else if (storageId.scheme === ide_core_browser_1.STORAGE_SCHEMA.GLOBAL) {
32
+ if (this.isBuiltinStorage(storageId)) {
33
+ // 如果是内置的 Storage,在初始化过程中采用 GlobalBrowserStorageService 代理
34
+ storage = new storage_1.Storage(this.globalStorage, this.workspaceService, this.appConfig, storageName, true, this.globalLocalStorage);
35
+ }
36
+ else {
37
+ storage = new storage_1.Storage(this.globalStorage, this.workspaceService, this.appConfig, storageName, true);
38
+ }
27
39
  }
28
40
  else {
29
- storage = new storage_1.Storage(this.globalStorage, this.workspaceService, this.appConfig, storageName);
41
+ return;
30
42
  }
31
- }
32
- else {
33
- return;
43
+ this.cache.set(storageId.toString(), storage);
34
44
  }
35
45
  // 等待后台存储模块初始化数据
36
46
  await storage.whenReady;
37
- this.storage = storage;
38
47
  return storage;
39
48
  }
40
49
  isBuiltinStorage(storageId) {
@@ -46,11 +55,6 @@ let DatabaseStorageContribution = class DatabaseStorageContribution {
46
55
  }
47
56
  return false;
48
57
  }
49
- onReconnect() {
50
- if (this.storage) {
51
- this.storage.reConnectInit();
52
- }
53
- }
54
58
  };
55
59
  tslib_1.__decorate([
56
60
  (0, di_1.Autowired)(common_1.IWorkspaceStorageServer),
@@ -77,7 +81,7 @@ tslib_1.__decorate([
77
81
  tslib_1.__metadata("design:type", ide_core_browser_1.ScopedBrowserStorageService)
78
82
  ], DatabaseStorageContribution.prototype, "scopedLocalStorage", void 0);
79
83
  DatabaseStorageContribution = tslib_1.__decorate([
80
- (0, ide_core_browser_1.Domain)(ide_core_browser_1.StorageResolverContribution, ide_core_browser_1.ClientAppContribution)
84
+ (0, ide_core_browser_1.Domain)(ide_core_browser_1.StorageResolverContribution)
81
85
  ], DatabaseStorageContribution);
82
86
  exports.DatabaseStorageContribution = DatabaseStorageContribution;
83
87
  //# sourceMappingURL=storage.contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.contribution.js","sourceRoot":"","sources":["../../src/browser/storage.contribution.ts"],"names":[],"mappings":";;;;AAAA,qCAAmE;AACnE,iEAWoC;AACpC,2DAA4D;AAE5D,sCAA0F;AAE1F,uCAAoC;AAG7B,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAqBtC,KAAK,CAAC,OAAO,CAAC,SAAc;QAC1B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,OAAiB,CAAC;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,iCAAc,CAAC,KAAK,EAAE;YAC7C,0DAA0D;YAC1D,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;gBACpC,OAAO,GAAG,IAAI,iBAAO,CACnB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,EACd,WAAW,EACX,IAAI,CAAC,kBAAkB,CACxB,CAAC;aACH;iBAAM;gBACL,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aAClG;SACF;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,iCAAc,CAAC,MAAM,EAAE;YACrD,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;gBACpC,0DAA0D;gBAC1D,OAAO,GAAG,IAAI,iBAAO,CACnB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,EACd,WAAW,EACX,IAAI,CAAC,kBAAkB,CACxB,CAAC;aACH;iBAAM;gBACL,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aAC/F;SACF;aAAM;YACL,OAAO;SACR;QACD,gBAAgB;QAChB,MAAM,OAAO,CAAC,SAAS,CAAC;QAExB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,SAAc;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,oCAAiB,CAAC,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,SAAS,CAAC,OAAO,CAAC,oCAAiB,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7C,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;SAC9B;IACH,CAAC;CACF,CAAA;AA3EC;IAAC,IAAA,cAAS,EAAC,gCAAuB,CAAC;;qEACM;AAEzC;IAAC,IAAA,cAAS,EAAC,6BAAoB,CAAC;;kEACM;AAEtC;IAAC,IAAA,cAAS,EAAC,4BAAS,CAAC;;8DACQ;AAE7B;IAAC,IAAA,cAAS,EAAC,iCAAiB,CAAC;;qEACe;AAE5C;IAAC,IAAA,cAAS,EAAC,8CAA2B,CAAC;sCACX,8CAA2B;uEAAC;AAExD;IAAC,IAAA,cAAS,EAAC,8CAA2B,CAAC;sCACX,8CAA2B;uEAAC;AAjB7C,2BAA2B;IADvC,IAAA,yBAAM,EAAC,8CAA2B,EAAE,wCAAqB,CAAC;GAC9C,2BAA2B,CA4EvC;AA5EY,kEAA2B"}
1
+ {"version":3,"file":"storage.contribution.js","sourceRoot":"","sources":["../../src/browser/storage.contribution.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class Storage implements IStorage {
7
7
  private readonly workspace;
8
8
  private readonly appConfig;
9
9
  private readonly storageName;
10
+ private readonly isGlobal;
10
11
  private readonly browserLocalStorage?;
11
12
  private static readonly DEFAULT_FLUSH_DELAY;
12
13
  private _onDidChangeStorage;
@@ -20,13 +21,12 @@ export declare class Storage implements IStorage {
20
21
  private readonly logger;
21
22
  private readyDeferred;
22
23
  private whenReadyToWriteDeferred;
23
- constructor(database: IStorageServer, workspace: IWorkspaceService, appConfig: AppConfig, storageName: string, browserLocalStorage?: StorageService | undefined);
24
+ constructor(database: IStorageServer, workspace: IWorkspaceService, appConfig: AppConfig, storageName: string, isGlobal?: boolean, browserLocalStorage?: StorageService | undefined);
24
25
  get whenReady(): Promise<void>;
25
26
  get whenReadyToWrite(): Promise<void>;
26
27
  get items(): Map<string, string>;
27
28
  get size(): number;
28
29
  init(storageName: string): Promise<void>;
29
- setup(storageName: string): void;
30
30
  reConnectInit(): Promise<void>;
31
31
  dispose(): void;
32
32
  get(key: string, fallbackValue: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/browser/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAEL,QAAQ,EAIR,KAAK,EAGN,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAQ3D,qBAAa,OAAQ,YAAW,QAAQ;IAsBpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAzBvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAElD,OAAO,CAAC,mBAAmB,CAAyB;IACpD,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkC;IAE5E,OAAO,CAAC,YAAY,CAAyB;IAE7C,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,KAAK,CAAkD;IAE/D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,cAAc,CAAkC;IAExD,OAAO,CAAC,sBAAsB,CAAoD;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,wBAAwB,CAAwB;gBAGrC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,EACnB,mBAAmB,CAAC,4BAAgB;IAYvD,IAAI,SAAS,kBAEZ;IAED,IAAI,gBAAgB,kBAEnB;IAED,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM;IA+B9B,KAAK,CAAC,WAAW,EAAE,MAAM;IAInB,aAAa;IAKnB,OAAO;IAIP,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAc5D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO;IACxD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAWrE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IACrD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAWlE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7F,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,YAAY;IAgC1B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,SAAS;CAelB"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/browser/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAEL,QAAQ,EAIR,KAAK,EAKN,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAQ3D,qBAAa,OAAQ,YAAW,QAAQ;IAsBpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IA1BvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAElD,OAAO,CAAC,mBAAmB,CAAyB;IACpD,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAkC;IAE5E,OAAO,CAAC,YAAY,CAAyB;IAE7C,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,KAAK,CAAkD;IAE/D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,cAAc,CAAkC;IAExD,OAAO,CAAC,sBAAsB,CAAoD;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,wBAAwB,CAAwB;gBAGrC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,OAAc,EACxB,mBAAmB,CAAC,4BAAgB;IAcvD,IAAI,SAAS,kBAEZ;IAED,IAAI,gBAAgB,kBAEnB;IAED,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,IAAI,CAAC,WAAW,EAAE,MAAM;IA+BxB,aAAa;IAKnB,OAAO;IAIP,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAc5D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO;IACxD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAWrE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IACrD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAWlE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7F,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqBd,YAAY;IAgC1B,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,SAAS;CAelB"}
@@ -9,11 +9,12 @@ var StorageState;
9
9
  StorageState[StorageState["Closed"] = 2] = "Closed";
10
10
  })(StorageState || (StorageState = {}));
11
11
  class Storage {
12
- constructor(database, workspace, appConfig, storageName, browserLocalStorage) {
12
+ constructor(database, workspace, appConfig, storageName, isGlobal = true, browserLocalStorage) {
13
13
  this.database = database;
14
14
  this.workspace = workspace;
15
15
  this.appConfig = appConfig;
16
16
  this.storageName = storageName;
17
+ this.isGlobal = isGlobal;
17
18
  this.browserLocalStorage = browserLocalStorage;
18
19
  this._onDidChangeStorage = new ide_core_common_1.Emitter();
19
20
  this.onDidChangeStorage = this._onDidChangeStorage.event;
@@ -26,11 +27,12 @@ class Storage {
26
27
  this.readyDeferred = new ide_core_common_1.Deferred();
27
28
  this.whenReadyToWriteDeferred = new ide_core_common_1.Deferred();
28
29
  this.toDisposableCollection.push(this._onDidChangeStorage);
29
- this.toDisposableCollection.push(this.workspace.onWorkspaceChanged(() => {
30
- this.setup(storageName);
31
- }));
32
30
  this.flushDelayer = new ide_core_common_1.ThrottledDelayer(Storage.DEFAULT_FLUSH_DELAY);
33
- this.setup(storageName);
31
+ this.init(storageName).then(() => {
32
+ this.toDisposableCollection.push(this.workspace.onWorkspaceChanged(() => {
33
+ this.init(storageName);
34
+ }));
35
+ });
34
36
  }
35
37
  get whenReady() {
36
38
  return this.readyDeferred.promise;
@@ -45,13 +47,16 @@ class Storage {
45
47
  return this.cache.size;
46
48
  }
47
49
  async init(storageName) {
48
- const workspace = this.workspace.workspace;
50
+ var _a;
51
+ // 首次加载情况下,由于 Storage 不依赖 WorkspaceService 初始化逻辑
52
+ // 在 `workspace` 不存在时,默认采用 `AppConfig` 内的 `workspaceDir` 配置值作为工作区路径
53
+ const workspace = ((_a = this.workspace.workspace) === null || _a === void 0 ? void 0 : _a.uri) || ide_core_common_1.URI.file(this.appConfig.workspaceDir).toString();
49
54
  let cache;
50
55
  if (this.browserLocalStorage) {
51
56
  cache = await this.browserLocalStorage.getData(storageName);
52
57
  }
53
- if (!cache) {
54
- await this.database.init(this.appConfig.storageDirName, workspace && workspace.uri);
58
+ if (!cache || (0, ide_core_common_1.isEmptyObject)(cache)) {
59
+ await this.database.init(this.appConfig.storageDirName, this.isGlobal ? undefined : workspace);
55
60
  cache = await this.database.getItems(storageName);
56
61
  if (this.browserLocalStorage) {
57
62
  this.browserLocalStorage.setData(storageName, cache);
@@ -60,13 +65,12 @@ class Storage {
60
65
  }
61
66
  else {
62
67
  // 初始化服务端缓存
63
- this.database.init(this.appConfig.storageDirName, workspace && workspace.uri).then(() => {
68
+ this.database.init(this.appConfig.storageDirName, this.isGlobal ? undefined : workspace).then(() => {
64
69
  this.database.getItems(storageName).then(async (data) => {
70
+ var _a;
65
71
  // 后续以服务端数据为准更新前端缓存数据,防止后续数据存取异常
66
72
  this.cache = this.jsonToMap(data);
67
- if (this.browserLocalStorage) {
68
- await this.browserLocalStorage.setData(storageName, JSON.stringify(data));
69
- }
73
+ await ((_a = this.browserLocalStorage) === null || _a === void 0 ? void 0 : _a.setData(storageName, data));
70
74
  this.whenReadyToWriteDeferred.resolve();
71
75
  });
72
76
  });
@@ -75,12 +79,9 @@ class Storage {
75
79
  this.state = StorageState.Initialized;
76
80
  this.readyDeferred.resolve();
77
81
  }
78
- setup(storageName) {
79
- this.init(storageName);
80
- }
81
82
  async reConnectInit() {
82
83
  this.readyDeferred = new ide_core_common_1.Deferred();
83
- this.setup(this.storageName);
84
+ this.init(this.storageName);
84
85
  }
85
86
  dispose() {
86
87
  this.toDisposableCollection.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/browser/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/browser/storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-storage",
3
- "version": "2.23.4",
3
+ "version": "2.23.5-rc-1681807382.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -17,13 +17,13 @@
17
17
  "url": "git@github.com:opensumi/core.git"
18
18
  },
19
19
  "dependencies": {
20
- "@opensumi/ide-core-common": "2.23.4"
20
+ "@opensumi/ide-core-common": "2.23.5-rc-1681807382.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@opensumi/ide-core-browser": "2.23.4",
23
+ "@opensumi/ide-core-browser": "2.23.5-rc-1681807382.0",
24
24
  "@opensumi/ide-dev-tool": "1.3.1",
25
- "@opensumi/ide-file-service": "2.23.4",
26
- "@opensumi/ide-workspace": "2.23.4"
25
+ "@opensumi/ide-file-service": "2.23.5-rc-1681807382.0",
26
+ "@opensumi/ide-workspace": "2.23.5-rc-1681807382.0"
27
27
  },
28
- "gitHead": "23400e4cfb82f3eada37c0d6c110e6d44d8a8193"
28
+ "gitHead": "9b66cc87f0e2ddc79fcfc7b3b0ec96a6a34e5537"
29
29
  }
@@ -1,10 +1,9 @@
1
- import { Autowired, Injector, INJECTOR_TOKEN } from '@opensumi/di';
1
+ import { Autowired } from '@opensumi/di';
2
2
  import {
3
3
  Domain,
4
4
  StorageResolverContribution,
5
5
  URI,
6
6
  IStorage,
7
- ClientAppContribution,
8
7
  STORAGE_SCHEMA,
9
8
  AppConfig,
10
9
  ScopedBrowserStorageService,
@@ -17,8 +16,8 @@ import { IStorageServer, IWorkspaceStorageServer, IGlobalStorageServer } from '.
17
16
 
18
17
  import { Storage } from './storage';
19
18
 
20
- @Domain(StorageResolverContribution, ClientAppContribution)
21
- export class DatabaseStorageContribution implements StorageResolverContribution, ClientAppContribution {
19
+ @Domain(StorageResolverContribution)
20
+ export class DatabaseStorageContribution implements StorageResolverContribution {
22
21
  @Autowired(IWorkspaceStorageServer)
23
22
  private workspaceStorage: IStorageServer;
24
23
 
@@ -37,45 +36,51 @@ export class DatabaseStorageContribution implements StorageResolverContribution,
37
36
  @Autowired(ScopedBrowserStorageService)
38
37
  private scopedLocalStorage: ScopedBrowserStorageService;
39
38
 
40
- storage: IStorage;
39
+ private cache: Map<string, IStorage> = new Map();
41
40
 
42
41
  async resolve(storageId: URI) {
43
42
  const storageName = storageId.path.toString();
44
43
  let storage: IStorage;
45
- if (storageId.scheme === STORAGE_SCHEMA.SCOPE) {
46
- // 如果是内置的 Storage,在初始化过程中采用 ScopedBrowserStorageService 代理
47
- if (this.isBuiltinStorage(storageId)) {
48
- storage = new Storage(
49
- this.workspaceStorage,
50
- this.workspaceService,
51
- this.appConfig,
52
- storageName,
53
- this.scopedLocalStorage,
54
- );
55
- } else {
56
- storage = new Storage(this.workspaceStorage, this.workspaceService, this.appConfig, storageName);
57
- }
58
- } else if (storageId.scheme === STORAGE_SCHEMA.GLOBAL) {
59
- if (this.isBuiltinStorage(storageId)) {
60
- // 如果是内置的 Storage,在初始化过程中采用 GlobalBrowserStorageService 代理
61
- storage = new Storage(
62
- this.globalStorage,
63
- this.workspaceService,
64
- this.appConfig,
65
- storageName,
66
- this.globalLocalStorage,
67
- );
44
+ const cache = this.cache.get(storageId.toString());
45
+ if (cache) {
46
+ storage = cache;
47
+ } else {
48
+ if (storageId.scheme === STORAGE_SCHEMA.SCOPE) {
49
+ // 如果是内置的 Storage,在初始化过程中采用 ScopedBrowserStorageService 代理
50
+ if (this.isBuiltinStorage(storageId)) {
51
+ storage = new Storage(
52
+ this.workspaceStorage,
53
+ this.workspaceService,
54
+ this.appConfig,
55
+ storageName,
56
+ false,
57
+ this.scopedLocalStorage,
58
+ );
59
+ } else {
60
+ storage = new Storage(this.workspaceStorage, this.workspaceService, this.appConfig, storageName, false);
61
+ }
62
+ } else if (storageId.scheme === STORAGE_SCHEMA.GLOBAL) {
63
+ if (this.isBuiltinStorage(storageId)) {
64
+ // 如果是内置的 Storage,在初始化过程中采用 GlobalBrowserStorageService 代理
65
+ storage = new Storage(
66
+ this.globalStorage,
67
+ this.workspaceService,
68
+ this.appConfig,
69
+ storageName,
70
+ true,
71
+ this.globalLocalStorage,
72
+ );
73
+ } else {
74
+ storage = new Storage(this.globalStorage, this.workspaceService, this.appConfig, storageName, true);
75
+ }
68
76
  } else {
69
- storage = new Storage(this.globalStorage, this.workspaceService, this.appConfig, storageName);
77
+ return;
70
78
  }
71
- } else {
72
- return;
79
+ this.cache.set(storageId.toString(), storage);
73
80
  }
81
+
74
82
  // 等待后台存储模块初始化数据
75
83
  await storage.whenReady;
76
-
77
- this.storage = storage;
78
-
79
84
  return storage;
80
85
  }
81
86
 
@@ -88,10 +93,4 @@ export class DatabaseStorageContribution implements StorageResolverContribution,
88
93
  }
89
94
  return false;
90
95
  }
91
-
92
- onReconnect() {
93
- if (this.storage) {
94
- this.storage.reConnectInit();
95
- }
96
- }
97
96
  }
@@ -8,6 +8,8 @@ import {
8
8
  Event,
9
9
  DisposableCollection,
10
10
  Deferred,
11
+ isEmptyObject,
12
+ URI,
11
13
  } from '@opensumi/ide-core-common';
12
14
  import { IWorkspaceService } from '@opensumi/ide-workspace';
13
15
 
@@ -45,16 +47,19 @@ export class Storage implements IStorage {
45
47
  private readonly workspace: IWorkspaceService,
46
48
  private readonly appConfig: AppConfig,
47
49
  private readonly storageName: string,
50
+ private readonly isGlobal: boolean = true,
48
51
  private readonly browserLocalStorage?: StorageService,
49
52
  ) {
50
53
  this.toDisposableCollection.push(this._onDidChangeStorage);
51
- this.toDisposableCollection.push(
52
- this.workspace.onWorkspaceChanged(() => {
53
- this.setup(storageName);
54
- }),
55
- );
54
+
56
55
  this.flushDelayer = new ThrottledDelayer(Storage.DEFAULT_FLUSH_DELAY);
57
- this.setup(storageName);
56
+ this.init(storageName).then(() => {
57
+ this.toDisposableCollection.push(
58
+ this.workspace.onWorkspaceChanged(() => {
59
+ this.init(storageName);
60
+ }),
61
+ );
62
+ });
58
63
  }
59
64
 
60
65
  get whenReady() {
@@ -74,13 +79,15 @@ export class Storage implements IStorage {
74
79
  }
75
80
 
76
81
  async init(storageName: string) {
77
- const workspace = this.workspace.workspace;
82
+ // 首次加载情况下,由于 Storage 不依赖 WorkspaceService 初始化逻辑
83
+ // 在 `workspace` 不存在时,默认采用 `AppConfig` 内的 `workspaceDir` 配置值作为工作区路径
84
+ const workspace = this.workspace.workspace?.uri || URI.file(this.appConfig.workspaceDir).toString();
78
85
  let cache;
79
86
  if (this.browserLocalStorage) {
80
87
  cache = await this.browserLocalStorage.getData(storageName);
81
88
  }
82
- if (!cache) {
83
- await this.database.init(this.appConfig.storageDirName, workspace && workspace.uri);
89
+ if (!cache || isEmptyObject(cache)) {
90
+ await this.database.init(this.appConfig.storageDirName, this.isGlobal ? undefined : workspace);
84
91
  cache = await this.database.getItems(storageName);
85
92
  if (this.browserLocalStorage) {
86
93
  this.browserLocalStorage.setData(storageName, cache);
@@ -88,13 +95,11 @@ export class Storage implements IStorage {
88
95
  this.whenReadyToWriteDeferred.resolve();
89
96
  } else {
90
97
  // 初始化服务端缓存
91
- this.database.init(this.appConfig.storageDirName, workspace && workspace.uri).then(() => {
98
+ this.database.init(this.appConfig.storageDirName, this.isGlobal ? undefined : workspace).then(() => {
92
99
  this.database.getItems(storageName).then(async (data) => {
93
100
  // 后续以服务端数据为准更新前端缓存数据,防止后续数据存取异常
94
101
  this.cache = this.jsonToMap(data);
95
- if (this.browserLocalStorage) {
96
- await this.browserLocalStorage.setData(storageName, JSON.stringify(data));
97
- }
102
+ await this.browserLocalStorage?.setData(storageName, data);
98
103
  this.whenReadyToWriteDeferred.resolve();
99
104
  });
100
105
  });
@@ -104,13 +109,9 @@ export class Storage implements IStorage {
104
109
  this.readyDeferred.resolve();
105
110
  }
106
111
 
107
- setup(storageName: string) {
108
- this.init(storageName);
109
- }
110
-
111
112
  async reConnectInit() {
112
113
  this.readyDeferred = new Deferred();
113
- this.setup(this.storageName);
114
+ this.init(this.storageName);
114
115
  }
115
116
 
116
117
  dispose() {