@jupyterlite/settings 0.2.0-beta.1 → 0.2.0-rc.1
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.
- package/lib/settings.d.ts +2 -4
- package/lib/settings.js +16 -52
- package/lib/settings.js.map +1 -1
- package/lib/tokens.d.ts +4 -0
- package/package.json +5 -5
package/lib/settings.d.ts
CHANGED
|
@@ -51,11 +51,9 @@ export declare class Settings implements ISettings {
|
|
|
51
51
|
*/
|
|
52
52
|
save(pluginId: string, raw: string): Promise<void>;
|
|
53
53
|
/**
|
|
54
|
-
* Get the settings for
|
|
55
|
-
*
|
|
56
|
-
* @param pluginId The id of a plugin
|
|
54
|
+
* Get all the settings for core or federated plugins
|
|
57
55
|
*/
|
|
58
|
-
private
|
|
56
|
+
private _getAll;
|
|
59
57
|
private _storageName;
|
|
60
58
|
private _storageDrivers;
|
|
61
59
|
private _storage;
|
package/lib/settings.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PageConfig, URLExt } from '@jupyterlab/coreutils';
|
|
2
|
-
import * as json5 from 'json5';
|
|
3
2
|
import { PromiseDelegate } from '@lumino/coreutils';
|
|
3
|
+
import * as json5 from 'json5';
|
|
4
4
|
/**
|
|
5
5
|
* The name of the local storage.
|
|
6
6
|
*/
|
|
@@ -73,22 +73,24 @@ export class Settings {
|
|
|
73
73
|
async get(pluginId) {
|
|
74
74
|
const all = await this.getAll();
|
|
75
75
|
const settings = all.settings;
|
|
76
|
-
|
|
76
|
+
const setting = settings.find((setting) => {
|
|
77
77
|
return setting.id === pluginId;
|
|
78
78
|
});
|
|
79
|
-
|
|
80
|
-
found = await this._getFederated(pluginId);
|
|
81
|
-
}
|
|
82
|
-
return found;
|
|
79
|
+
return setting;
|
|
83
80
|
}
|
|
84
81
|
/**
|
|
85
82
|
* Get all the settings
|
|
86
83
|
*/
|
|
87
84
|
async getAll() {
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
const [allCore, allFederated] = await Promise.all([
|
|
86
|
+
this._getAll('all.json'),
|
|
87
|
+
this._getAll('all_federated.json'),
|
|
88
|
+
]);
|
|
89
|
+
// JupyterLab 4 expects all settings to be returned in one go
|
|
90
|
+
// so append the settings from federated plugins to the core ones
|
|
91
|
+
const all = allCore.concat(allFederated);
|
|
92
|
+
// return existing user settings if they exist
|
|
90
93
|
const storage = await this.storage;
|
|
91
|
-
const all = (await (await fetch(URLExt.join(settingsUrl, 'all.json'))).json());
|
|
92
94
|
const settings = await Promise.all(all.map(async (plugin) => {
|
|
93
95
|
var _a;
|
|
94
96
|
const { id } = plugin;
|
|
@@ -112,30 +114,13 @@ export class Settings {
|
|
|
112
114
|
await (await this.storage).setItem(pluginId, raw);
|
|
113
115
|
}
|
|
114
116
|
/**
|
|
115
|
-
* Get the settings for
|
|
116
|
-
*
|
|
117
|
-
* @param pluginId The id of a plugin
|
|
117
|
+
* Get all the settings for core or federated plugins
|
|
118
118
|
*/
|
|
119
|
-
async
|
|
119
|
+
async _getAll(file) {
|
|
120
120
|
var _a;
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
const labExtensionsUrl = PageConfig.getOption('fullLabextensionsUrl');
|
|
126
|
-
const schemaUrl = URLExt.join(labExtensionsUrl, packageName, 'schemas', packageName, `${schemaName}.json`);
|
|
127
|
-
const packageUrl = URLExt.join(labExtensionsUrl, packageName, 'package.json');
|
|
128
|
-
const schema = await (await fetch(schemaUrl)).json();
|
|
129
|
-
const packageJson = await (await fetch(packageUrl)).json();
|
|
130
|
-
const raw = (_a = (await (await this.storage).getItem(pluginId))) !== null && _a !== void 0 ? _a : '{}';
|
|
131
|
-
const settings = json5.parse(raw) || {};
|
|
132
|
-
return Private.override({
|
|
133
|
-
id: pluginId,
|
|
134
|
-
raw,
|
|
135
|
-
schema,
|
|
136
|
-
settings,
|
|
137
|
-
version: packageJson.version || '3.0.8',
|
|
138
|
-
});
|
|
121
|
+
const settingsUrl = (_a = PageConfig.getOption('settingsUrl')) !== null && _a !== void 0 ? _a : '/';
|
|
122
|
+
const all = (await (await fetch(URLExt.join(settingsUrl, file))).json());
|
|
123
|
+
return all;
|
|
139
124
|
}
|
|
140
125
|
}
|
|
141
126
|
/**
|
|
@@ -144,27 +129,6 @@ export class Settings {
|
|
|
144
129
|
var Private;
|
|
145
130
|
(function (Private) {
|
|
146
131
|
const _overrides = JSON.parse(PageConfig.getOption('settingsOverrides') || '{}');
|
|
147
|
-
/**
|
|
148
|
-
* Test whether this package is configured in `federated_extensions` in this app
|
|
149
|
-
*
|
|
150
|
-
* @param packageName The npm name of a package
|
|
151
|
-
*/
|
|
152
|
-
function isFederated(packageName) {
|
|
153
|
-
let federated;
|
|
154
|
-
try {
|
|
155
|
-
federated = JSON.parse(PageConfig.getOption('federated_extensions'));
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
for (const { name } of federated) {
|
|
161
|
-
if (name === packageName) {
|
|
162
|
-
return true;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return false;
|
|
166
|
-
}
|
|
167
|
-
Private.isFederated = isFederated;
|
|
168
132
|
/**
|
|
169
133
|
* Override the defaults of the schema with ones from PageConfig
|
|
170
134
|
*
|
package/lib/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
|
package/lib/tokens.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ import { JSONObject, PartialJSONObject, Token } from '@lumino/coreutils';
|
|
|
4
4
|
* The token for the settings service.
|
|
5
5
|
*/
|
|
6
6
|
export declare const ISettings: Token<ISettings>;
|
|
7
|
+
/**
|
|
8
|
+
* The settings file to request
|
|
9
|
+
*/
|
|
10
|
+
export type SettingsFile = 'all.json' | 'all_federated.json';
|
|
7
11
|
/**
|
|
8
12
|
* An interface for the plugin settings.
|
|
9
13
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlite/settings",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-rc.1",
|
|
4
4
|
"description": "JupyterLite - Settings",
|
|
5
5
|
"homepage": "https://github.com/jupyterlite/jupyterlite",
|
|
6
6
|
"bugs": {
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"watch": "tsc -b --watch"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@jupyterlab/coreutils": "~6.0.
|
|
46
|
-
"@jupyterlab/settingregistry": "~4.0.
|
|
47
|
-
"@jupyterlite/localforage": "^0.2.0-
|
|
45
|
+
"@jupyterlab/coreutils": "~6.0.7",
|
|
46
|
+
"@jupyterlab/settingregistry": "~4.0.7",
|
|
47
|
+
"@jupyterlite/localforage": "^0.2.0-rc.1",
|
|
48
48
|
"@lumino/coreutils": "^2.1.2",
|
|
49
49
|
"json5": "^2.2.0",
|
|
50
50
|
"localforage": "^1.9.0"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@babel/core": "^7.11.6",
|
|
54
54
|
"@babel/preset-env": "^7.12.1",
|
|
55
|
-
"@jupyterlab/testutils": "~4.0.
|
|
55
|
+
"@jupyterlab/testutils": "~4.0.7",
|
|
56
56
|
"@types/jest": "^29.5.3",
|
|
57
57
|
"jest": "^29.6.2",
|
|
58
58
|
"rimraf": "~5.0.1",
|