@theia/preferences 1.24.0-next.52 → 1.24.0-next.56

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.
@@ -3,7 +3,7 @@ import URI from '@theia/core/lib/common/uri';
3
3
  import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
4
4
  import { Deferred } from '@theia/core/lib/common/promise-util';
5
5
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
6
- import { PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
6
+ import { PreferenceContext, PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
7
7
  import { Emitter, Event } from '@theia/core';
8
8
  export declare abstract class AbstractResourcePreferenceProvider extends PreferenceProvider {
9
9
  protected preferences: Record<string, any>;
@@ -29,6 +29,12 @@ export declare abstract class AbstractResourcePreferenceProvider extends Prefere
29
29
  };
30
30
  setPreference(key: string, value: any, resourceUri?: string): Promise<boolean>;
31
31
  protected doSetPreference(key: string, path: string[], value: unknown): Promise<boolean>;
32
+ /**
33
+ * Use this method as intermediary for interactions with actual files.
34
+ * Allows individual providers to modify where they store their files without disrupting the preference system's
35
+ * conventions about scope and file location.
36
+ */
37
+ protected toFileManager(): PreferenceContext;
32
38
  protected getPath(preferenceName: string): string[] | undefined;
33
39
  protected readPreferencesFromFile(): Promise<void>;
34
40
  protected readPreferencesFromContent(content: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-resource-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAAgC,MAAM,yBAAyB,CAAC;AACtI,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,8BACsB,kCAAmC,SAAQ,kBAAkB;IAE/E,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAChD,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,iBAAkB;IAC5C,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,mBAA0B;IAEvE,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,EAK7B;IAED,IAAI,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,CAExC;IAEqC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IACzE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;cAG9E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBrC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG;IAChC,QAAQ,CAAC,QAAQ,IAAI,eAAe;IAEpC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAEQ,YAAY,IAAI,GAAG;IACnB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS;IAQvE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAYlD,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAItD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAQpE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9F,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;cAQ/C,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW3D,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IASrC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI;IA8BzE,SAAS,CAAC,KAAK,IAAI,IAAI;CAgB1B"}
1
+ {"version":3,"file":"abstract-resource-preference-provider.d.ts","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAAgC,MAAM,yBAAyB,CAAC;AACtI,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,8BACsB,kCAAmC,SAAQ,kBAAkB;IAE/E,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAChD,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,QAAQ,CAAC,OAAO,iBAAkB;IAC5C,SAAS,CAAC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,QAAQ,CAAC,0BAA0B,mBAA0B;IAEvE,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,EAK7B;IAED,IAAI,mBAAmB,IAAI,KAAK,CAAC,OAAO,CAAC,CAExC;IAEqC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;IACxE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;IACzE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC;cAG9E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG;IAChC,QAAQ,CAAC,QAAQ,IAAI,eAAe;IAEpC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAEQ,YAAY,IAAI,GAAG;IACnB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS;IAQvE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAYlD,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAItD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAQpE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9F;;;;OAIG;IACH,SAAS,CAAC,aAAa,IAAI,iBAAiB;IAI5C,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;cAQ/C,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxD,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW3D,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IASrC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI;IA8BzE,SAAS,CAAC,KAAK,IAAI,IAAI;CAgB1B"}
@@ -56,14 +56,15 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
56
56
  }
57
57
  async init() {
58
58
  const uri = this.getUri();
59
- this.toDispose.push(disposable_1.Disposable.create(() => this.loading.reject(new Error(`preference provider for '${uri}' was disposed`))));
59
+ this.toDispose.push(disposable_1.Disposable.create(() => this.loading.reject(new Error(`Preference provider for '${uri}' was disposed.`))));
60
60
  await this.readPreferencesFromFile();
61
61
  this._ready.resolve();
62
62
  this.loading.resolve();
63
+ const storageUri = this.toFileManager().getConfigUri();
63
64
  this.toDispose.pushAll([
64
- this.fileService.watch(uri),
65
+ this.fileService.watch(storageUri),
65
66
  this.fileService.onDidFilesChange(e => {
66
- if (e.contains(uri)) {
67
+ if (e.contains(storageUri)) {
67
68
  this.readPreferencesFromFile();
68
69
  }
69
70
  }),
@@ -104,7 +105,7 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
104
105
  var _a;
105
106
  if (!((_a = this.transaction) === null || _a === void 0 ? void 0 : _a.open)) {
106
107
  const current = this.transaction;
107
- this.transaction = this.transactionFactory(this);
108
+ this.transaction = this.transactionFactory(this.toFileManager());
108
109
  this.transaction.waitFor(current === null || current === void 0 ? void 0 : current.result);
109
110
  this.transaction.onWillConclude(({ status, waitUntil }) => {
110
111
  if (status) {
@@ -118,6 +119,14 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
118
119
  }
119
120
  return this.transaction.enqueueAction(key, path, value);
120
121
  }
122
+ /**
123
+ * Use this method as intermediary for interactions with actual files.
124
+ * Allows individual providers to modify where they store their files without disrupting the preference system's
125
+ * conventions about scope and file location.
126
+ */
127
+ toFileManager() {
128
+ return this;
129
+ }
121
130
  getPath(preferenceName) {
122
131
  const asOverride = this.preferenceOverrideService.overriddenPreferenceName(preferenceName);
123
132
  if (asOverride === null || asOverride === void 0 ? void 0 : asOverride.overrideIdentifier) {
@@ -126,7 +135,7 @@ let AbstractResourcePreferenceProvider = class AbstractResourcePreferenceProvide
126
135
  return [preferenceName];
127
136
  }
128
137
  async readPreferencesFromFile() {
129
- const content = await this.fileService.read(this.getUri())
138
+ const content = await this.fileService.read(this.toFileManager().getConfigUri())
130
139
  .then(value => {
131
140
  this.fileExists = true;
132
141
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-resource-preference-provider.js","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract-resource-preference-provider.js","sourceRoot":"","sources":["../../src/browser/abstract-resource-preference-provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@theia/preferences",
3
- "version": "1.24.0-next.52+b1bd7bd528c",
3
+ "version": "1.24.0-next.56+42c93b0ecb1",
4
4
  "description": "Theia - Preferences Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.24.0-next.52+b1bd7bd528c",
7
- "@theia/editor": "1.24.0-next.52+b1bd7bd528c",
8
- "@theia/filesystem": "1.24.0-next.52+b1bd7bd528c",
9
- "@theia/monaco": "1.24.0-next.52+b1bd7bd528c",
6
+ "@theia/core": "1.24.0-next.56+42c93b0ecb1",
7
+ "@theia/editor": "1.24.0-next.56+42c93b0ecb1",
8
+ "@theia/filesystem": "1.24.0-next.56+42c93b0ecb1",
9
+ "@theia/monaco": "1.24.0-next.56+42c93b0ecb1",
10
10
  "@theia/monaco-editor-core": "1.65.2",
11
- "@theia/userstorage": "1.24.0-next.52+b1bd7bd528c",
12
- "@theia/workspace": "1.24.0-next.52+b1bd7bd528c",
11
+ "@theia/userstorage": "1.24.0-next.56+42c93b0ecb1",
12
+ "@theia/workspace": "1.24.0-next.56+42c93b0ecb1",
13
13
  "async-mutex": "^0.3.1",
14
14
  "jsonc-parser": "^2.2.0",
15
15
  "p-debounce": "^2.1.0"
@@ -52,5 +52,5 @@
52
52
  "nyc": {
53
53
  "extends": "../../configs/nyc.json"
54
54
  },
55
- "gitHead": "b1bd7bd528c257652f29451d168b750840c22e45"
55
+ "gitHead": "42c93b0ecb14abb3635af9e19ecb66d34c66b8b0"
56
56
  }
@@ -25,7 +25,7 @@ import URI from '@theia/core/lib/common/uri';
25
25
  import { PreferenceConfigurations } from '@theia/core/lib/browser/preferences/preference-configurations';
26
26
  import { Deferred } from '@theia/core/lib/common/promise-util';
27
27
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
28
- import { PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
28
+ import { PreferenceContext, PreferenceTransaction, PreferenceTransactionFactory } from './preference-transaction-manager';
29
29
  import { Emitter, Event } from '@theia/core';
30
30
 
31
31
  @injectable()
@@ -56,14 +56,15 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
56
56
  @postConstruct()
57
57
  protected async init(): Promise<void> {
58
58
  const uri = this.getUri();
59
- this.toDispose.push(Disposable.create(() => this.loading.reject(new Error(`preference provider for '${uri}' was disposed`))));
59
+ this.toDispose.push(Disposable.create(() => this.loading.reject(new Error(`Preference provider for '${uri}' was disposed.`))));
60
60
  await this.readPreferencesFromFile();
61
61
  this._ready.resolve();
62
62
  this.loading.resolve();
63
+ const storageUri = this.toFileManager().getConfigUri();
63
64
  this.toDispose.pushAll([
64
- this.fileService.watch(uri),
65
+ this.fileService.watch(storageUri),
65
66
  this.fileService.onDidFilesChange(e => {
66
- if (e.contains(uri)) {
67
+ if (e.contains(storageUri)) {
67
68
  this.readPreferencesFromFile();
68
69
  }
69
70
  }),
@@ -114,7 +115,7 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
114
115
  protected async doSetPreference(key: string, path: string[], value: unknown): Promise<boolean> {
115
116
  if (!this.transaction?.open) {
116
117
  const current = this.transaction;
117
- this.transaction = this.transactionFactory(this);
118
+ this.transaction = this.transactionFactory(this.toFileManager());
118
119
  this.transaction.waitFor(current?.result);
119
120
  this.transaction.onWillConclude(({ status, waitUntil }) => {
120
121
  if (status) {
@@ -129,6 +130,15 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
129
130
  return this.transaction.enqueueAction(key, path, value);
130
131
  }
131
132
 
133
+ /**
134
+ * Use this method as intermediary for interactions with actual files.
135
+ * Allows individual providers to modify where they store their files without disrupting the preference system's
136
+ * conventions about scope and file location.
137
+ */
138
+ protected toFileManager(): PreferenceContext {
139
+ return this;
140
+ }
141
+
132
142
  protected getPath(preferenceName: string): string[] | undefined {
133
143
  const asOverride = this.preferenceOverrideService.overriddenPreferenceName(preferenceName);
134
144
  if (asOverride?.overrideIdentifier) {
@@ -138,7 +148,7 @@ export abstract class AbstractResourcePreferenceProvider extends PreferenceProvi
138
148
  }
139
149
 
140
150
  protected async readPreferencesFromFile(): Promise<void> {
141
- const content = await this.fileService.read(this.getUri())
151
+ const content = await this.fileService.read(this.toFileManager().getConfigUri())
142
152
  .then(value => {
143
153
  this.fileExists = true;
144
154
  return value;