@lvce-editor/settings-view 2.21.0 → 2.22.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.
@@ -368,6 +368,100 @@ const IpcChildWithModuleWorkerAndMessagePort$1 = {
368
368
  listen: listen$6,
369
369
  wrap: wrap$e
370
370
  };
371
+ const addListener = (emitter, type, callback) => {
372
+ if ('addEventListener' in emitter) {
373
+ emitter.addEventListener(type, callback);
374
+ } else {
375
+ emitter.on(type, callback);
376
+ }
377
+ };
378
+ const removeListener = (emitter, type, callback) => {
379
+ if ('removeEventListener' in emitter) {
380
+ emitter.removeEventListener(type, callback);
381
+ } else {
382
+ emitter.off(type, callback);
383
+ }
384
+ };
385
+ const getFirstEvent = (eventEmitter, eventMap) => {
386
+ const {
387
+ promise,
388
+ resolve
389
+ } = Promise.withResolvers();
390
+ const listenerMap = Object.create(null);
391
+ const cleanup = value => {
392
+ for (const event of Object.keys(eventMap)) {
393
+ removeListener(eventEmitter, event, listenerMap[event]);
394
+ }
395
+ resolve(value);
396
+ };
397
+ for (const [event, type] of Object.entries(eventMap)) {
398
+ const listener = event => {
399
+ cleanup({
400
+ event,
401
+ type
402
+ });
403
+ };
404
+ addListener(eventEmitter, event, listener);
405
+ listenerMap[event] = listener;
406
+ }
407
+ return promise;
408
+ };
409
+ const Message$1 = 3;
410
+ const create$5 = async ({
411
+ isMessagePortOpen,
412
+ messagePort
413
+ }) => {
414
+ if (!isMessagePort(messagePort)) {
415
+ throw new IpcError('port must be of type MessagePort');
416
+ }
417
+ if (isMessagePortOpen) {
418
+ return messagePort;
419
+ }
420
+ const eventPromise = getFirstEvent(messagePort, {
421
+ message: Message$1
422
+ });
423
+ messagePort.start();
424
+ const {
425
+ event,
426
+ type
427
+ } = await eventPromise;
428
+ if (type !== Message$1) {
429
+ throw new IpcError('Failed to wait for ipc message');
430
+ }
431
+ if (event.data !== readyMessage) {
432
+ throw new IpcError('unexpected first message');
433
+ }
434
+ return messagePort;
435
+ };
436
+ const signal$1 = messagePort => {
437
+ messagePort.start();
438
+ };
439
+ class IpcParentWithMessagePort extends Ipc {
440
+ getData = getData$2;
441
+ send(message) {
442
+ this._rawIpc.postMessage(message);
443
+ }
444
+ sendAndTransfer(message) {
445
+ const transfer = getTransferrables(message);
446
+ this._rawIpc.postMessage(message, transfer);
447
+ }
448
+ dispose() {
449
+ this._rawIpc.close();
450
+ }
451
+ onMessage(callback) {
452
+ this._rawIpc.addEventListener('message', callback);
453
+ }
454
+ onClose(callback) {}
455
+ }
456
+ const wrap$5 = messagePort => {
457
+ return new IpcParentWithMessagePort(messagePort);
458
+ };
459
+ const IpcParentWithMessagePort$1 = {
460
+ __proto__: null,
461
+ create: create$5,
462
+ signal: signal$1,
463
+ wrap: wrap$5
464
+ };
371
465
 
372
466
  const Two$1 = '2.0';
373
467
  const callbacks = Object.create(null);
@@ -820,6 +914,27 @@ const listen$1 = async (module, options) => {
820
914
  const ipc = module.wrap(rawIpc);
821
915
  return ipc;
822
916
  };
917
+ const create$4 = async ({
918
+ commandMap,
919
+ isMessagePortOpen = true,
920
+ messagePort
921
+ }) => {
922
+ // TODO create a commandMap per rpc instance
923
+ register(commandMap);
924
+ const rawIpc = await IpcParentWithMessagePort$1.create({
925
+ isMessagePortOpen,
926
+ messagePort
927
+ });
928
+ const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
929
+ handleIpc(ipc);
930
+ const rpc = createRpc(ipc);
931
+ messagePort.start();
932
+ return rpc;
933
+ };
934
+ const PlainMessagePortRpc = {
935
+ __proto__: null,
936
+ create: create$4
937
+ };
823
938
  const create$1$1 = async ({
824
939
  commandMap
825
940
  }) => {
@@ -1080,7 +1195,7 @@ const {
1080
1195
  get: get$1,
1081
1196
  getCommandIds,
1082
1197
  registerCommands,
1083
- set: set$3,
1198
+ set: set$5,
1084
1199
  wrapCommand,
1085
1200
  wrapGetter
1086
1201
  } = create$2();
@@ -1121,7 +1236,7 @@ const create$1 = (id, uri, x, y, width, height) => {
1121
1236
  x,
1122
1237
  y
1123
1238
  };
1124
- set$3(id, state, state);
1239
+ set$5(id, state, state);
1125
1240
  };
1126
1241
 
1127
1242
  const isEqual$4 = (oldState, newState) => {
@@ -1675,6 +1790,7 @@ const SettingsFilter = 94;
1675
1790
 
1676
1791
  const None$1 = 0;
1677
1792
 
1793
+ const RendererProcess = 1670;
1678
1794
  const RendererWorker = 1;
1679
1795
 
1680
1796
  const SetCss = 'Viewlet.setCss';
@@ -2916,7 +3032,7 @@ const getName = () => {
2916
3032
  };
2917
3033
 
2918
3034
  const rpcs = Object.create(null);
2919
- const set$2 = (id, rpc) => {
3035
+ const set$4 = (id, rpc) => {
2920
3036
  rpcs[id] = rpc;
2921
3037
  };
2922
3038
  const get = id => {
@@ -2949,7 +3065,7 @@ const create = rpcId => {
2949
3065
  const mockRpc = createMockRpc({
2950
3066
  commandMap
2951
3067
  });
2952
- set$2(rpcId, mockRpc);
3068
+ set$4(rpcId, mockRpc);
2953
3069
  // @ts-ignore
2954
3070
  mockRpc[Symbol.dispose] = () => {
2955
3071
  remove(rpcId);
@@ -2958,11 +3074,16 @@ const create = rpcId => {
2958
3074
  return mockRpc;
2959
3075
  },
2960
3076
  set(rpc) {
2961
- set$2(rpcId, rpc);
3077
+ set$4(rpcId, rpc);
2962
3078
  }
2963
3079
  };
2964
3080
  };
2965
3081
 
3082
+ const {
3083
+ invoke: invoke$2,
3084
+ set: set$3
3085
+ } = create(RendererProcess);
3086
+
2966
3087
  class AssertionError extends Error {
2967
3088
  constructor(message) {
2968
3089
  super(message);
@@ -3007,8 +3128,8 @@ const number = value => {
3007
3128
  };
3008
3129
 
3009
3130
  const {
3010
- invoke,
3011
- set: set$1
3131
+ invoke: invoke$1,
3132
+ set: set$2
3012
3133
  } = create(RendererWorker);
3013
3134
  const showContextMenu2 = async (uid, menuId, x, y, args) => {
3014
3135
  number(uid);
@@ -3016,11 +3137,11 @@ const showContextMenu2 = async (uid, menuId, x, y, args) => {
3016
3137
  number(x);
3017
3138
  number(y);
3018
3139
  // @ts-ignore
3019
- await invoke('ContextMenu.show2', uid, menuId, x, y, args);
3140
+ await invoke$1('ContextMenu.show2', uid, menuId, x, y, args);
3020
3141
  };
3021
3142
  const getAllPreferences = async () => {
3022
3143
  // @ts-ignore
3023
- return invoke('Preferences.getAll');
3144
+ return invoke$1('Preferences.getAll');
3024
3145
  };
3025
3146
 
3026
3147
  const show2 = async (uid, menuId, x, y, args) => {
@@ -3222,6 +3343,29 @@ const handleInputFocus = state => {
3222
3343
  };
3223
3344
  };
3224
3345
 
3346
+ const state = {
3347
+ connected: false
3348
+ };
3349
+ const isConnected = () => {
3350
+ const {
3351
+ connected
3352
+ } = state;
3353
+ return connected;
3354
+ };
3355
+ const invoke = (method, ...params) => invoke$2(method, ...params);
3356
+ const set$1 = rpc => {
3357
+ set$3(rpc);
3358
+ state.connected = true;
3359
+ };
3360
+
3361
+ const handleMessagePort = async port => {
3362
+ const rpc = await PlainMessagePortRpc.create({
3363
+ commandMap: {},
3364
+ messagePort: port
3365
+ });
3366
+ set$1(rpc);
3367
+ };
3368
+
3225
3369
  const handleResizerPointerDown = (state, eventX, eventY) => {
3226
3370
  return state;
3227
3371
  };
@@ -5277,9 +5421,16 @@ const render2 = (uid, diffResult) => {
5277
5421
  newState,
5278
5422
  oldState
5279
5423
  } = get$1(uid);
5280
- set$3(uid, newState, newState);
5424
+ set$5(uid, newState, newState);
5281
5425
  const commands = applyRender(oldState, newState, diffResult);
5282
- return commands;
5426
+ if (!isConnected()) return commands;
5427
+ return renderDirect(uid, commands);
5428
+ };
5429
+ const renderDirect = async (uid, commands) => {
5430
+ const rendererWorkerCommands = commands.filter(command => command[0] === 'Viewlet.setFocusContext');
5431
+ const rendererProcessCommands = commands.filter(command => command[0] !== 'Viewlet.setFocusContext');
5432
+ const transactionId = await invoke('Viewlet.queueCommands', uid, rendererProcessCommands);
5433
+ return [...rendererWorkerCommands, ['Viewlet.commitPending', uid, transactionId]];
5283
5434
  };
5284
5435
 
5285
5436
  const renderActions = () => {
@@ -5423,6 +5574,7 @@ const commandMap = {
5423
5574
  'Settings.handleInput': wrapCommand(handleInput),
5424
5575
  'Settings.handleInputBlur': wrapCommand(handleInputBlur),
5425
5576
  'Settings.handleInputFocus': wrapCommand(handleInputFocus),
5577
+ 'Settings.handleMessagePort': handleMessagePort,
5426
5578
  'Settings.handleResizerPointerDown': wrapCommand(handleResizerPointerDown),
5427
5579
  'Settings.handleResizerPointerMove': wrapCommand(handleResizerPointerMove),
5428
5580
  'Settings.handleResizerPointerUp': wrapCommand(handleResizerPointerUp),
@@ -5443,7 +5595,7 @@ const commandMap = {
5443
5595
  };
5444
5596
 
5445
5597
  const set = rpc => {
5446
- set$1(rpc);
5598
+ set$2(rpc);
5447
5599
  };
5448
5600
 
5449
5601
  const listen = async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/settings-view",
3
- "version": "2.21.0",
3
+ "version": "2.22.0",
4
4
  "description": "Explorer Worker",
5
5
  "repository": {
6
6
  "type": "git",