@lvce-editor/extension-host-worker 1.7.0 → 1.9.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.
@@ -2082,6 +2082,9 @@ const getWebView = id => {
2082
2082
  const setWebView = (id, webView) => {
2083
2083
  webViews[id] = webView;
2084
2084
  };
2085
+ const getWebViews = () => {
2086
+ return webViews;
2087
+ };
2085
2088
 
2086
2089
  // TODO if webViewId is provided,
2087
2090
  // 1. read file as blob
@@ -2198,9 +2201,9 @@ const createWebView = async (providerId, port, uri, uid, origin) => {
2198
2201
  // TODO allow creating multiple webviews per provider
2199
2202
  setWebView(providerId, rpc);
2200
2203
  };
2201
- const load = async providerId => {
2204
+ const load = async (providerId, savedState) => {
2202
2205
  const rpc = getWebView(providerId);
2203
- await rpc.provider.create(rpc, rpc.uri);
2206
+ await rpc.provider.create(rpc, rpc.uri, savedState);
2204
2207
  };
2205
2208
  const disposeWebView = id => {
2206
2209
  // TODO race condition
@@ -3385,11 +3388,33 @@ const handleMessagePort = port => {
3385
3388
  ipc.send('ready');
3386
3389
  };
3387
3390
 
3388
- const saveState = () => {
3389
- console.log('TODO save state');
3390
- return {
3391
- x: 1
3392
- };
3391
+ const serializeWebView = async webView => {
3392
+ if (webView && webView.provider && webView.provider.saveState) {
3393
+ const saved = await webView.provider.saveState();
3394
+ return {
3395
+ uri: webView.uri,
3396
+ state: saved
3397
+ };
3398
+ }
3399
+ return undefined;
3400
+ };
3401
+ const serializeWebViews = async webViews => {
3402
+ const serialized = [];
3403
+ for (const [key, value] of Object.entries(webViews)) {
3404
+ const serializedValue = await serializeWebView(value);
3405
+ if (serializedValue) {
3406
+ serialized.push({
3407
+ key,
3408
+ value: serializedValue
3409
+ });
3410
+ }
3411
+ }
3412
+ return serialized;
3413
+ };
3414
+ const saveState = async () => {
3415
+ const webViews = getWebViews();
3416
+ const serialized = await serializeWebViews(webViews);
3417
+ return serialized;
3393
3418
  };
3394
3419
 
3395
3420
  const commandMap = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/extension-host-worker",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "Webworker for the extension host functionality in Lvce Editor.",
5
5
  "main": "dist/extensionHostWorkerMain.js",
6
6
  "type": "module",