@lvce-editor/status-bar-worker 1.12.0 → 1.14.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.
@@ -54,49 +54,6 @@ class VError extends Error {
54
54
  }
55
55
  }
56
56
 
57
- class AssertionError extends Error {
58
- constructor(message) {
59
- super(message);
60
- this.name = 'AssertionError';
61
- }
62
- }
63
- const Object$1 = 1;
64
- const Number$1 = 2;
65
- const Array$1 = 3;
66
- const String = 4;
67
- const Boolean = 5;
68
- const Function = 6;
69
- const Null = 7;
70
- const Unknown = 8;
71
- const getType = value => {
72
- switch (typeof value) {
73
- case 'number':
74
- return Number$1;
75
- case 'function':
76
- return Function;
77
- case 'string':
78
- return String;
79
- case 'object':
80
- if (value === null) {
81
- return Null;
82
- }
83
- if (Array.isArray(value)) {
84
- return Array$1;
85
- }
86
- return Object$1;
87
- case 'boolean':
88
- return Boolean;
89
- default:
90
- return Unknown;
91
- }
92
- };
93
- const number = value => {
94
- const type = getType(value);
95
- if (type !== Number$1) {
96
- throw new AssertionError('expected value to be of type number');
97
- }
98
- };
99
-
100
57
  const isMessagePort = value => {
101
58
  return value && value instanceof MessagePort;
102
59
  };
@@ -225,8 +182,8 @@ const getModuleNotFoundError = stderr => {
225
182
  const messageIndex = lines.findIndex(isModuleNotFoundMessage);
226
183
  const message = lines[messageIndex];
227
184
  return {
228
- message,
229
- code: ERR_MODULE_NOT_FOUND
185
+ code: ERR_MODULE_NOT_FOUND,
186
+ message
230
187
  };
231
188
  };
232
189
  const isModuleNotFoundError = stderr => {
@@ -249,14 +206,14 @@ const isUnhelpfulNativeModuleError = stderr => {
249
206
  const getNativeModuleErrorMessage = stderr => {
250
207
  const message = getMessageCodeBlock(stderr);
251
208
  return {
252
- message: `Incompatible native node module: ${message}`,
253
- code: E_INCOMPATIBLE_NATIVE_MODULE
209
+ code: E_INCOMPATIBLE_NATIVE_MODULE,
210
+ message: `Incompatible native node module: ${message}`
254
211
  };
255
212
  };
256
213
  const getModuleSyntaxError = () => {
257
214
  return {
258
- message: `ES Modules are not supported in electron`,
259
- code: E_MODULES_NOT_SUPPORTED_IN_ELECTRON
215
+ code: E_MODULES_NOT_SUPPORTED_IN_ELECTRON,
216
+ message: `ES Modules are not supported in electron`
260
217
  };
261
218
  };
262
219
  const getHelpfulChildProcessError = (stdout, stderr) => {
@@ -275,8 +232,8 @@ const getHelpfulChildProcessError = (stdout, stderr) => {
275
232
  rest
276
233
  } = getDetails(lines);
277
234
  return {
278
- message: actualMessage,
279
235
  code: '',
236
+ message: actualMessage,
280
237
  stack: rest
281
238
  };
282
239
  };
@@ -286,8 +243,8 @@ class IpcError extends VError {
286
243
  if (stdout || stderr) {
287
244
  // @ts-ignore
288
245
  const {
289
- message,
290
246
  code,
247
+ message,
291
248
  stack
292
249
  } = getHelpfulChildProcessError(stdout, stderr);
293
250
  const cause = new Error(message);
@@ -348,8 +305,8 @@ const wrap$f = global => {
348
305
  };
349
306
  const waitForFirstMessage = async port => {
350
307
  const {
351
- resolve,
352
- promise
308
+ promise,
309
+ resolve
353
310
  } = Promise.withResolvers();
354
311
  port.addEventListener('message', resolve, {
355
312
  once: true
@@ -369,8 +326,8 @@ const listen$6 = async () => {
369
326
  const type = firstMessage.params[0];
370
327
  if (type === 'message-port') {
371
328
  parentIpc.send({
372
- jsonrpc: '2.0',
373
329
  id: firstMessage.id,
330
+ jsonrpc: '2.0',
374
331
  result: null
375
332
  });
376
333
  parentIpc.dispose();
@@ -427,8 +384,8 @@ const removeListener = (emitter, type, callback) => {
427
384
  };
428
385
  const getFirstEvent = (eventEmitter, eventMap) => {
429
386
  const {
430
- resolve,
431
- promise
387
+ promise,
388
+ resolve
432
389
  } = Promise.withResolvers();
433
390
  const listenerMap = Object.create(null);
434
391
  const cleanup = value => {
@@ -440,8 +397,8 @@ const getFirstEvent = (eventEmitter, eventMap) => {
440
397
  for (const [event, type] of Object.entries(eventMap)) {
441
398
  const listener = event => {
442
399
  cleanup({
443
- type,
444
- event
400
+ event,
401
+ type
445
402
  });
446
403
  };
447
404
  addListener(eventEmitter, event, listener);
@@ -450,9 +407,9 @@ const getFirstEvent = (eventEmitter, eventMap) => {
450
407
  return promise;
451
408
  };
452
409
  const Message$1 = 3;
453
- const create$5$1 = async ({
454
- messagePort,
455
- isMessagePortOpen
410
+ const create$5 = async ({
411
+ isMessagePortOpen,
412
+ messagePort
456
413
  }) => {
457
414
  if (!isMessagePort(messagePort)) {
458
415
  throw new IpcError('port must be of type MessagePort');
@@ -465,8 +422,8 @@ const create$5$1 = async ({
465
422
  });
466
423
  messagePort.start();
467
424
  const {
468
- type,
469
- event
425
+ event,
426
+ type
470
427
  } = await eventPromise;
471
428
  if (type !== Message$1) {
472
429
  throw new IpcError('Failed to wait for ipc message');
@@ -501,61 +458,19 @@ const wrap$5 = messagePort => {
501
458
  };
502
459
  const IpcParentWithMessagePort$1 = {
503
460
  __proto__: null,
504
- create: create$5$1,
461
+ create: create$5,
505
462
  signal: signal$1,
506
463
  wrap: wrap$5
507
464
  };
508
465
 
509
- const Two = '2.0';
510
- const create$4$1 = (method, params) => {
511
- return {
512
- jsonrpc: Two,
513
- method,
514
- params
515
- };
516
- };
466
+ const Two$1 = '2.0';
517
467
  const callbacks = Object.create(null);
518
- const set$4 = (id, fn) => {
519
- callbacks[id] = fn;
520
- };
521
468
  const get$3 = id => {
522
469
  return callbacks[id];
523
470
  };
524
- const remove = id => {
471
+ const remove$1 = id => {
525
472
  delete callbacks[id];
526
473
  };
527
- let id$1 = 0;
528
- const create$3$1 = () => {
529
- return ++id$1;
530
- };
531
- const registerPromise = () => {
532
- const id = create$3$1();
533
- const {
534
- resolve,
535
- promise
536
- } = Promise.withResolvers();
537
- set$4(id, resolve);
538
- return {
539
- id,
540
- promise
541
- };
542
- };
543
- const create$2$1 = (method, params) => {
544
- const {
545
- id,
546
- promise
547
- } = registerPromise();
548
- const message = {
549
- jsonrpc: Two,
550
- method,
551
- params,
552
- id
553
- };
554
- return {
555
- message,
556
- promise
557
- };
558
- };
559
474
  class JsonRpcError extends Error {
560
475
  constructor(message) {
561
476
  super(message);
@@ -706,7 +621,7 @@ const resolve = (id, response) => {
706
621
  return;
707
622
  }
708
623
  fn(response);
709
- remove(id);
624
+ remove$1(id);
710
625
  };
711
626
  const E_COMMAND_NOT_FOUND = 'E_COMMAND_NOT_FOUND';
712
627
  const getErrorType = prettyError => {
@@ -749,9 +664,9 @@ const getErrorProperty = (error, prettyError) => {
749
664
  }
750
665
  };
751
666
  };
752
- const create$1$1 = (id, error) => {
667
+ const create$1$2 = (id, error) => {
753
668
  return {
754
- jsonrpc: Two,
669
+ jsonrpc: Two$1,
755
670
  id,
756
671
  error
757
672
  };
@@ -760,22 +675,22 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
760
675
  const prettyError = preparePrettyError(error);
761
676
  logError(error, prettyError);
762
677
  const errorProperty = getErrorProperty(error, prettyError);
763
- return create$1$1(id, errorProperty);
678
+ return create$1$2(id, errorProperty);
764
679
  };
765
- const create$6 = (message, result) => {
680
+ const create$3 = (message, result) => {
766
681
  return {
767
- jsonrpc: Two,
682
+ jsonrpc: Two$1,
768
683
  id: message.id,
769
684
  result: result ?? null
770
685
  };
771
686
  };
772
687
  const getSuccessResponse = (message, result) => {
773
688
  const resultProperty = result ?? null;
774
- return create$6(message, resultProperty);
689
+ return create$3(message, resultProperty);
775
690
  };
776
691
  const getErrorResponseSimple = (id, error) => {
777
692
  return {
778
- jsonrpc: Two,
693
+ jsonrpc: Two$1,
779
694
  id,
780
695
  error: {
781
696
  code: Custom,
@@ -862,29 +777,6 @@ const handleJsonRpcMessage = async (...args) => {
862
777
  }
863
778
  throw new JsonRpcError('unexpected message');
864
779
  };
865
- const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
866
- const {
867
- message,
868
- promise
869
- } = create$2$1(method, params);
870
- if (useSendAndTransfer && ipc.sendAndTransfer) {
871
- ipc.sendAndTransfer(message);
872
- } else {
873
- ipc.send(message);
874
- }
875
- const responseMessage = await promise;
876
- return unwrapJsonRpcResult(responseMessage);
877
- };
878
- const send = (transport, method, ...params) => {
879
- const message = create$4$1(method, params);
880
- transport.send(message);
881
- };
882
- const invoke$2 = (ipc, method, ...params) => {
883
- return invokeHelper(ipc, method, params, false);
884
- };
885
- const invokeAndTransfer$1 = (ipc, method, ...params) => {
886
- return invokeHelper(ipc, method, params, true);
887
- };
888
780
 
889
781
  class CommandNotFoundError extends Error {
890
782
  constructor(command) {
@@ -907,24 +799,87 @@ const execute = (command, ...args) => {
907
799
  return fn(...args);
908
800
  };
909
801
 
802
+ const Two = '2.0';
803
+ const create$s = (method, params) => {
804
+ return {
805
+ jsonrpc: Two,
806
+ method,
807
+ params
808
+ };
809
+ };
810
+ const create$r = (id, method, params) => {
811
+ const message = {
812
+ id,
813
+ jsonrpc: Two,
814
+ method,
815
+ params
816
+ };
817
+ return message;
818
+ };
819
+ let id$1 = 0;
820
+ const create$q = () => {
821
+ return ++id$1;
822
+ };
823
+
824
+ /* eslint-disable n/no-unsupported-features/es-syntax */
825
+
826
+ const registerPromise = map => {
827
+ const id = create$q();
828
+ const {
829
+ promise,
830
+ resolve
831
+ } = Promise.withResolvers();
832
+ map[id] = resolve;
833
+ return {
834
+ id,
835
+ promise
836
+ };
837
+ };
838
+
839
+ // @ts-ignore
840
+ const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer) => {
841
+ const {
842
+ id,
843
+ promise
844
+ } = registerPromise(callbacks);
845
+ const message = create$r(id, method, params);
846
+ if (useSendAndTransfer && ipc.sendAndTransfer) {
847
+ ipc.sendAndTransfer(message);
848
+ } else {
849
+ ipc.send(message);
850
+ }
851
+ const responseMessage = await promise;
852
+ return unwrapJsonRpcResult(responseMessage);
853
+ };
910
854
  const createRpc = ipc => {
855
+ const callbacks = Object.create(null);
856
+ ipc._resolve = (id, response) => {
857
+ const fn = callbacks[id];
858
+ if (!fn) {
859
+ console.warn(`callback ${id} may already be disposed`);
860
+ return;
861
+ }
862
+ fn(response);
863
+ delete callbacks[id];
864
+ };
911
865
  const rpc = {
866
+ async dispose() {
867
+ await ipc?.dispose();
868
+ },
869
+ invoke(method, ...params) {
870
+ return invokeHelper(callbacks, ipc, method, params, false);
871
+ },
872
+ invokeAndTransfer(method, ...params) {
873
+ return invokeHelper(callbacks, ipc, method, params, true);
874
+ },
912
875
  // @ts-ignore
913
876
  ipc,
914
877
  /**
915
878
  * @deprecated
916
879
  */
917
880
  send(method, ...params) {
918
- send(ipc, method, ...params);
919
- },
920
- invoke(method, ...params) {
921
- return invoke$2(ipc, method, ...params);
922
- },
923
- invokeAndTransfer(method, ...params) {
924
- return invokeAndTransfer$1(ipc, method, ...params);
925
- },
926
- async dispose() {
927
- await ipc?.dispose();
881
+ const message = create$s(method, params);
882
+ ipc.send(message);
928
883
  }
929
884
  };
930
885
  return rpc;
@@ -941,7 +896,7 @@ const logError = () => {
941
896
  const handleMessage = event => {
942
897
  const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
943
898
  const actualExecute = event?.target?.execute || execute;
944
- return handleJsonRpcMessage(event.target, event.data, actualExecute, resolve, preparePrettyError, logError, actualRequiresSocket);
899
+ return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
945
900
  };
946
901
  const handleIpc = ipc => {
947
902
  if ('addEventListener' in ipc) {
@@ -959,15 +914,16 @@ const listen$1 = async (module, options) => {
959
914
  const ipc = module.wrap(rawIpc);
960
915
  return ipc;
961
916
  };
962
- const create$5 = async ({
917
+ const create$4 = async ({
963
918
  commandMap,
919
+ isMessagePortOpen = true,
964
920
  messagePort
965
921
  }) => {
966
922
  // TODO create a commandMap per rpc instance
967
923
  register(commandMap);
968
924
  const rawIpc = await IpcParentWithMessagePort$1.create({
969
- messagePort,
970
- isMessagePortOpen: true
925
+ isMessagePortOpen,
926
+ messagePort
971
927
  });
972
928
  const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
973
929
  handleIpc(ipc);
@@ -975,8 +931,9 @@ const create$5 = async ({
975
931
  messagePort.start();
976
932
  return rpc;
977
933
  };
978
- const create$3 = async ({
934
+ const create$2$1 = async ({
979
935
  commandMap,
936
+ isMessagePortOpen,
980
937
  send
981
938
  }) => {
982
939
  const {
@@ -984,16 +941,17 @@ const create$3 = async ({
984
941
  port2
985
942
  } = new MessageChannel();
986
943
  await send(port1);
987
- return create$5({
944
+ return create$4({
988
945
  commandMap,
946
+ isMessagePortOpen,
989
947
  messagePort: port2
990
948
  });
991
949
  };
992
950
  const TransferMessagePortRpcParent = {
993
951
  __proto__: null,
994
- create: create$3
952
+ create: create$2$1
995
953
  };
996
- const create$4 = async ({
954
+ const create$1$1 = async ({
997
955
  commandMap
998
956
  }) => {
999
957
  // TODO create a commandMap per rpc instance
@@ -1005,22 +963,31 @@ const create$4 = async ({
1005
963
  };
1006
964
  const WebWorkerRpcClient = {
1007
965
  __proto__: null,
1008
- create: create$4
966
+ create: create$1$1
967
+ };
968
+ const createMockRpc = ({
969
+ commandMap
970
+ }) => {
971
+ const invocations = [];
972
+ const invoke = (method, ...params) => {
973
+ invocations.push([method, ...params]);
974
+ const command = commandMap[method];
975
+ if (!command) {
976
+ throw new Error(`command ${method} not found`);
977
+ }
978
+ return command(...params);
979
+ };
980
+ const mockRpc = {
981
+ invocations,
982
+ invoke,
983
+ invokeAndTransfer: invoke
984
+ };
985
+ return mockRpc;
1009
986
  };
1010
-
1011
- const Button$1 = 'button';
1012
-
1013
- const Button = 1;
1014
- const Div = 4;
1015
- const Text = 12;
1016
-
1017
- const TargetName = 'event.target.name';
1018
987
 
1019
988
  const ExtensionHostWorker = 44;
1020
989
  const RendererWorker = 1;
1021
990
 
1022
- const SetDom2 = 'Viewlet.setDom2';
1023
-
1024
991
  const rpcs = Object.create(null);
1025
992
  const set$3 = (id, rpc) => {
1026
993
  rpcs[id] = rpc;
@@ -1028,9 +995,17 @@ const set$3 = (id, rpc) => {
1028
995
  const get$2 = id => {
1029
996
  return rpcs[id];
1030
997
  };
998
+ const remove = id => {
999
+ delete rpcs[id];
1000
+ };
1031
1001
 
1002
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
1032
1003
  const create$2 = rpcId => {
1033
1004
  return {
1005
+ async dispose() {
1006
+ const rpc = get$2(rpcId);
1007
+ await rpc.dispose();
1008
+ },
1034
1009
  // @ts-ignore
1035
1010
  invoke(method, ...params) {
1036
1011
  const rpc = get$2(rpcId);
@@ -1043,30 +1018,40 @@ const create$2 = rpcId => {
1043
1018
  // @ts-ignore
1044
1019
  return rpc.invokeAndTransfer(method, ...params);
1045
1020
  },
1021
+ registerMockRpc(commandMap) {
1022
+ const mockRpc = createMockRpc({
1023
+ commandMap
1024
+ });
1025
+ set$3(rpcId, mockRpc);
1026
+ // @ts-ignore
1027
+ mockRpc[Symbol.dispose] = () => {
1028
+ remove(rpcId);
1029
+ };
1030
+ // @ts-ignore
1031
+ return mockRpc;
1032
+ },
1046
1033
  set(rpc) {
1047
1034
  set$3(rpcId, rpc);
1048
- },
1049
- async dispose() {
1050
- const rpc = get$2(rpcId);
1051
- await rpc.dispose();
1052
1035
  }
1053
1036
  };
1054
1037
  };
1055
1038
 
1056
1039
  const {
1057
1040
  invoke: invoke$1,
1058
- set: set$2} = create$2(ExtensionHostWorker);
1041
+ set: set$2
1042
+ } = create$2(ExtensionHostWorker);
1059
1043
 
1060
1044
  const {
1061
1045
  invoke,
1062
1046
  invokeAndTransfer,
1063
- set: set$1} = create$2(RendererWorker);
1047
+ set: set$1
1048
+ } = create$2(RendererWorker);
1064
1049
  const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
1065
1050
  const command = 'HandleMessagePort.handleMessagePort2';
1066
1051
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
1067
1052
  };
1068
- const activateByEvent$1 = event => {
1069
- return invoke('ExtensionHostManagement.activateByEvent', event);
1053
+ const activateByEvent$1 = (event, assetDir, platform) => {
1054
+ return invoke('ExtensionHostManagement.activateByEvent', event, assetDir, platform);
1070
1055
  };
1071
1056
  const getPreference = async key => {
1072
1057
  return await invoke('Preferences.get', key);
@@ -1162,13 +1147,19 @@ const {
1162
1147
  getCommandIds,
1163
1148
  registerCommands,
1164
1149
  set,
1165
- wrapCommand} = create$1();
1150
+ wrapCommand,
1151
+ wrapGetter
1152
+ } = create$1();
1166
1153
 
1167
- const create = uid => {
1154
+ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
1168
1155
  const state = {
1156
+ assetDir,
1157
+ errorCount: 0,
1158
+ platform,
1169
1159
  statusBarItemsLeft: [],
1170
1160
  statusBarItemsRight: [],
1171
- uid
1161
+ uid,
1162
+ warningCount: 0
1172
1163
  };
1173
1164
  set(uid, state, state);
1174
1165
  };
@@ -1326,29 +1317,26 @@ const itemRightUpdate = (state, newItem) => {
1326
1317
  };
1327
1318
  };
1328
1319
 
1329
- const ProblemsErrorIcon = 'ProblemsErrorIcon';
1330
- const ProblemsWarningIcon = 'ProblemsWarningIcon';
1331
- const StatusBarItem = 'StatusBarItem';
1332
- const StatusBarItemsLeft = 'StatusBarItemsLeft';
1333
- const StatusBarItemsRight = 'StatusBarItemsRight';
1334
-
1335
1320
  const OnStatusBarItem = 'onStatusBarItem';
1336
1321
 
1337
1322
  const GetStatusBarItems = 'ExtensionHost.getStatusBarItems2';
1338
1323
 
1339
- const activateByEvent = event => {
1340
- return activateByEvent$1(event);
1324
+ const activateByEvent = (event, assetDir, platform) => {
1325
+ // @ts-ignore
1326
+ return activateByEvent$1(event, assetDir, platform);
1341
1327
  };
1342
1328
 
1343
1329
  const executeProviders = async ({
1330
+ assetDir,
1344
1331
  combineResults,
1345
1332
  event,
1346
1333
  method,
1347
1334
  noProviderFoundMessage = 'No provider found',
1348
1335
  noProviderFoundResult,
1349
- params
1336
+ params,
1337
+ platform
1350
1338
  }) => {
1351
- await activateByEvent(event);
1339
+ await activateByEvent(event, assetDir, platform);
1352
1340
  // @ts-ignore
1353
1341
  const result = await invoke$1(method, ...params);
1354
1342
  return result;
@@ -1357,17 +1345,55 @@ const executeProviders = async ({
1357
1345
  const combineResults = results => {
1358
1346
  return results.flat();
1359
1347
  };
1360
- const getStatusBarItems$1 = () => {
1348
+ const getStatusBarItems$1 = (assetDir, platform) => {
1361
1349
  return executeProviders({
1350
+ assetDir,
1362
1351
  combineResults,
1363
1352
  event: OnStatusBarItem,
1364
1353
  method: GetStatusBarItems,
1365
1354
  noProviderFoundMessage: 'No status bar item provider found',
1366
1355
  noProviderFoundResult: [],
1367
- params: []
1356
+ params: [],
1357
+ platform
1368
1358
  });
1369
1359
  };
1370
1360
 
1361
+ const ProblemsErrorIcon = 'ProblemsErrorIcon';
1362
+ const ProblemsWarningIcon = 'ProblemsWarningIcon';
1363
+ const StatusBarItem = 'StatusBarItem';
1364
+ const StatusBarItemsLeft = 'StatusBarItemsLeft';
1365
+ const StatusBarItemsRight = 'StatusBarItemsRight';
1366
+
1367
+ const getBuiltinStatusBarItems = async () => {
1368
+ const extraItems = [{
1369
+ command: undefined,
1370
+ elements: [{
1371
+ type: 'text',
1372
+ value: 'Notifications'
1373
+ }],
1374
+ name: Notifications,
1375
+ tooltip: ''
1376
+ }, {
1377
+ command: undefined,
1378
+ elements: [{
1379
+ type: 'icon',
1380
+ value: ProblemsErrorIcon
1381
+ }, {
1382
+ type: 'text',
1383
+ value: '0'
1384
+ }, {
1385
+ type: 'icon',
1386
+ value: ProblemsWarningIcon
1387
+ }, {
1388
+ type: 'text',
1389
+ value: '0'
1390
+ }],
1391
+ name: Problems,
1392
+ tooltip: ''
1393
+ }];
1394
+ return extraItems;
1395
+ };
1396
+
1371
1397
  const toStatusBarItem = uiStatusBarItem => {
1372
1398
  const elements = [];
1373
1399
  if (uiStatusBarItem.icon) {
@@ -1396,10 +1422,16 @@ const toStatusBarItem = uiStatusBarItem => {
1396
1422
  };
1397
1423
  };
1398
1424
 
1425
+ const getActualIcon = extensionHostStatusBarItem => {
1426
+ if (extensionHostStatusBarItem.icon === 'branch') {
1427
+ return 'Branch';
1428
+ }
1429
+ return extensionHostStatusBarItem.icon || '';
1430
+ };
1399
1431
  const toUiStatusBarItem = extensionHostStatusBarItem => {
1400
1432
  return {
1401
1433
  command: extensionHostStatusBarItem.command || '',
1402
- icon: extensionHostStatusBarItem.icon || '',
1434
+ icon: getActualIcon(extensionHostStatusBarItem),
1403
1435
  name: extensionHostStatusBarItem.id || extensionHostStatusBarItem.name || '',
1404
1436
  text: extensionHostStatusBarItem.text || '',
1405
1437
  tooltip: extensionHostStatusBarItem.tooltip || ''
@@ -1413,39 +1445,14 @@ const toUiStatusBarItems = statusBarItems => {
1413
1445
  return statusBarItems.map(toUiStatusBarItem);
1414
1446
  };
1415
1447
 
1416
- const getStatusBarItems = async showItems => {
1448
+ const getStatusBarItems = async (showItems, assetDir, platform) => {
1417
1449
  if (!showItems) {
1418
1450
  return [];
1419
1451
  }
1420
- await activateByEvent('onSourceControl');
1421
- const extensionStatusBarItems = await getStatusBarItems$1();
1452
+ await activateByEvent('onSourceControl', assetDir, platform);
1453
+ const extensionStatusBarItems = await getStatusBarItems$1(assetDir, platform);
1422
1454
  const uiStatusBarItems = toUiStatusBarItems(extensionStatusBarItems);
1423
- const extraItems = [{
1424
- command: undefined,
1425
- elements: [{
1426
- type: 'text',
1427
- value: 'Notifications'
1428
- }],
1429
- name: Notifications,
1430
- tooltip: ''
1431
- }, {
1432
- command: undefined,
1433
- elements: [{
1434
- type: 'icon',
1435
- value: ProblemsErrorIcon
1436
- }, {
1437
- type: 'text',
1438
- value: '0'
1439
- }, {
1440
- type: 'icon',
1441
- value: ProblemsWarningIcon
1442
- }, {
1443
- type: 'text',
1444
- value: '0'
1445
- }],
1446
- name: Problems,
1447
- tooltip: ''
1448
- }];
1455
+ const extraItems = await getBuiltinStatusBarItems();
1449
1456
  return [...uiStatusBarItems.map(toStatusBarItem), ...extraItems];
1450
1457
  };
1451
1458
 
@@ -1459,15 +1466,38 @@ const itemsVisible = async () => {
1459
1466
  };
1460
1467
 
1461
1468
  const loadContent = async state => {
1469
+ const {
1470
+ assetDir,
1471
+ platform
1472
+ } = state;
1462
1473
  const statusBarItemsPreference = await itemsVisible();
1463
- const statusBarItems = await getStatusBarItems(statusBarItemsPreference);
1474
+ const statusBarItems = await getStatusBarItems(statusBarItemsPreference, assetDir, platform);
1464
1475
  return {
1465
1476
  ...state,
1477
+ errorCount: 0,
1466
1478
  statusBarItemsLeft: [...statusBarItems],
1467
- statusBarItemsRight: []
1479
+ statusBarItemsRight: [],
1480
+ warningCount: 0
1468
1481
  };
1469
1482
  };
1470
1483
 
1484
+ const Button$1 = 'button';
1485
+
1486
+ const MaskIcon = 'MaskIcon';
1487
+
1488
+ const Button = 1;
1489
+ const Div = 4;
1490
+ const Span = 8;
1491
+ const Text = 12;
1492
+
1493
+ const TargetName = 'event.target.name';
1494
+
1495
+ const SetDom2 = 'Viewlet.setDom2';
1496
+
1497
+ const mergeClassNames = (...classNames) => {
1498
+ return classNames.filter(Boolean).join(' ');
1499
+ };
1500
+
1471
1501
  const text = data => {
1472
1502
  return {
1473
1503
  type: Text,
@@ -1478,28 +1508,39 @@ const text = data => {
1478
1508
 
1479
1509
  const HandleClick = 11;
1480
1510
 
1481
- const getElementVirtualDom = element => {
1511
+ const getTextVirtualDom = element => {
1512
+ return [{
1513
+ childCount: 1,
1514
+ className: 'StatusBarItemLabel',
1515
+ type: Span
1516
+ }, text(element.value)];
1517
+ };
1518
+ const getIconVirtualDom = element => {
1519
+ return [{
1520
+ childCount: 0,
1521
+ className: mergeClassNames(MaskIcon, element.value),
1522
+ type: Div
1523
+ }];
1524
+ };
1525
+ const getStatusBarItemElementVirtualDom = element => {
1482
1526
  if (element.type === 'text') {
1483
- return [text(element.value)];
1527
+ return getTextVirtualDom(element);
1484
1528
  }
1485
1529
  if (element.type === 'icon') {
1486
- return [{
1487
- childCount: 0,
1488
- className: element.value,
1489
- type: Div
1490
- }];
1530
+ return getIconVirtualDom(element);
1491
1531
  }
1492
1532
  return [];
1493
1533
  };
1534
+
1494
1535
  const getStatusBarItemVirtualDom = statusBarItem => {
1495
1536
  const {
1496
1537
  elements,
1497
1538
  name,
1498
1539
  tooltip
1499
1540
  } = statusBarItem;
1500
- const elementNodes = elements.flatMap(getElementVirtualDom);
1541
+ const elementNodes = elements.flatMap(getStatusBarItemElementVirtualDom);
1501
1542
  return [{
1502
- childCount: elementNodes.length,
1543
+ childCount: elements.length,
1503
1544
  className: StatusBarItem,
1504
1545
  name,
1505
1546
  role: Button$1,
@@ -1595,16 +1636,11 @@ const resize = (state, dimensions) => {
1595
1636
  };
1596
1637
  };
1597
1638
 
1598
- const saveState = uid => {
1599
- number(uid);
1600
- const value = get$1(uid);
1601
- const {
1602
- newState
1603
- } = value;
1639
+ const saveState = state => {
1604
1640
  const {
1605
1641
  statusBarItemsLeft,
1606
1642
  statusBarItemsRight
1607
- } = newState;
1643
+ } = state;
1608
1644
  return {
1609
1645
  itemsLeft: statusBarItemsLeft,
1610
1646
  itemsRight: statusBarItemsRight
@@ -1624,7 +1660,7 @@ const commandMap = {
1624
1660
  'StatusBar.render2': render2,
1625
1661
  'StatusBar.renderEventListeners': renderEventListeners,
1626
1662
  'StatusBar.resize': wrapCommand(resize),
1627
- 'StatusBar.saveState': saveState,
1663
+ 'StatusBar.saveState': wrapGetter(saveState),
1628
1664
  'StatusBar.terminate': terminate
1629
1665
  };
1630
1666
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/status-bar-worker",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "description": "Status Bar Worker",
5
5
  "repository": {
6
6
  "type": "git",