@lvce-editor/status-bar-worker 1.0.0 → 1.2.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.
@@ -378,10 +378,10 @@ const create$4 = (method, params) => {
378
378
  };
379
379
  };
380
380
  const callbacks = Object.create(null);
381
- const set = (id, fn) => {
381
+ const set$1 = (id, fn) => {
382
382
  callbacks[id] = fn;
383
383
  };
384
- const get = id => {
384
+ const get$2 = id => {
385
385
  return callbacks[id];
386
386
  };
387
387
  const remove = id => {
@@ -397,13 +397,13 @@ const registerPromise = () => {
397
397
  resolve,
398
398
  promise
399
399
  } = Promise.withResolvers();
400
- set(id, resolve);
400
+ set$1(id, resolve);
401
401
  return {
402
402
  id,
403
403
  promise
404
404
  };
405
405
  };
406
- const create$2 = (method, params) => {
406
+ const create$2$1 = (method, params) => {
407
407
  const {
408
408
  id,
409
409
  promise
@@ -562,7 +562,7 @@ const warn = (...args) => {
562
562
  console.warn(...args);
563
563
  };
564
564
  const resolve = (id, response) => {
565
- const fn = get(id);
565
+ const fn = get$2(id);
566
566
  if (!fn) {
567
567
  console.log(response);
568
568
  warn(`callback ${id} may already be disposed`);
@@ -612,7 +612,7 @@ const getErrorProperty = (error, prettyError) => {
612
612
  }
613
613
  };
614
614
  };
615
- const create$1 = (id, error) => {
615
+ const create$1$1 = (id, error) => {
616
616
  return {
617
617
  jsonrpc: Two,
618
618
  id,
@@ -623,7 +623,7 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
623
623
  const prettyError = preparePrettyError(error);
624
624
  logError(error, prettyError);
625
625
  const errorProperty = getErrorProperty(error, prettyError);
626
- return create$1(id, errorProperty);
626
+ return create$1$1(id, errorProperty);
627
627
  };
628
628
  const create$5 = (message, result) => {
629
629
  return {
@@ -729,7 +729,7 @@ const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
729
729
  const {
730
730
  message,
731
731
  promise
732
- } = create$2(method, params);
732
+ } = create$2$1(method, params);
733
733
  if (useSendAndTransfer && ipc.sendAndTransfer) {
734
734
  ipc.sendAndTransfer(message);
735
735
  } else {
@@ -742,7 +742,7 @@ const send = (transport, method, ...params) => {
742
742
  const message = create$4(method, params);
743
743
  transport.send(message);
744
744
  };
745
- const invoke = (ipc, method, ...params) => {
745
+ const invoke$2 = (ipc, method, ...params) => {
746
746
  return invokeHelper(ipc, method, params, false);
747
747
  };
748
748
  const invokeAndTransfer = (ipc, method, ...params) => {
@@ -781,7 +781,7 @@ const createRpc = ipc => {
781
781
  send(ipc, method, ...params);
782
782
  },
783
783
  invoke(method, ...params) {
784
- return invoke(ipc, method, ...params);
784
+ return invoke$2(ipc, method, ...params);
785
785
  },
786
786
  invokeAndTransfer(method, ...params) {
787
787
  return invokeAndTransfer(ipc, method, ...params);
@@ -822,7 +822,7 @@ const listen$1 = async (module, options) => {
822
822
  const ipc = module.wrap(rawIpc);
823
823
  return ipc;
824
824
  };
825
- const create = async ({
825
+ const create$2 = async ({
826
826
  commandMap
827
827
  }) => {
828
828
  // TODO create a commandMap per rpc instance
@@ -834,10 +834,206 @@ const create = async ({
834
834
  };
835
835
  const WebWorkerRpcClient = {
836
836
  __proto__: null,
837
- create
837
+ create: create$2
838
838
  };
839
839
 
840
- const commandMap = {};
840
+ const terminate = () => {
841
+ globalThis.close();
842
+ };
843
+
844
+ const create$1 = uid => {
845
+ return {
846
+ statusBarItemsLeft: [],
847
+ statusBarItemsRight: [],
848
+ uid
849
+ };
850
+ };
851
+
852
+ const handleClick = (state, name) => {
853
+ // TODO
854
+ // sendExtensionWorker([/* statusBarItemHandleClick */ 7657, /* name */ name])
855
+ return state;
856
+ };
857
+
858
+ const getIndex = (items, item) => {
859
+ for (let i = 0; i < items.length; i++) {
860
+ if (items[i].name === item.name) {
861
+ return i;
862
+ }
863
+ }
864
+ return -1;
865
+ };
866
+ const updateArray = (items, newItem) => {
867
+ const index = getIndex(items, newItem);
868
+ const before = items.slice(0, index);
869
+ const after = items.slice(index + 1);
870
+ return [...before, newItem, ...after];
871
+ };
872
+
873
+ const itemLeftUpdate = (state, newItem) => {
874
+ return {
875
+ ...state,
876
+ statusBarItemsLeft: updateArray([...state.statusBarItemsLeft], newItem)
877
+ };
878
+ };
879
+
880
+ const itemRightCreate = (state, newItem) => {
881
+ const {
882
+ statusBarItemsRight
883
+ } = state;
884
+ const newStatusBarItemsRight = [...statusBarItemsRight, newItem];
885
+ return {
886
+ ...state,
887
+ statusBarItemsRight: newStatusBarItemsRight
888
+ };
889
+ };
890
+
891
+ const itemRightUpdate = (state, newItem) => {
892
+ const {
893
+ statusBarItemsRight
894
+ } = state;
895
+ const newStatusBarItemsRight = updateArray([...statusBarItemsRight], newItem);
896
+ return {
897
+ ...state,
898
+ statusBarItemsRight: newStatusBarItemsRight
899
+ };
900
+ };
901
+
902
+ const OnStatusBarItem = 'onStatusBarItem';
903
+
904
+ const GetStatusBarItems = 'ExtensionHost.getStatusBarItems';
905
+
906
+ const ExtensionHostWorker = 44;
907
+ const RendererWorker = 1;
908
+
909
+ const rpcs = Object.create(null);
910
+ const set = (id, rpc) => {
911
+ rpcs[id] = rpc;
912
+ };
913
+ const get$1 = id => {
914
+ return rpcs[id];
915
+ };
916
+
917
+ const create = rpcId => {
918
+ return {
919
+ // @ts-ignore
920
+ invoke(method, ...params) {
921
+ const rpc = get$1(rpcId);
922
+ // @ts-ignore
923
+ return rpc.invoke(method, ...params);
924
+ },
925
+ // @ts-ignore
926
+ invokeAndTransfer(method, ...params) {
927
+ const rpc = get$1(rpcId);
928
+ // @ts-ignore
929
+ return rpc.invokeAndTransfer(method, ...params);
930
+ },
931
+ set(rpc) {
932
+ set(rpcId, rpc);
933
+ },
934
+ async dispose() {
935
+ const rpc = get$1(rpcId);
936
+ await rpc.dispose();
937
+ }
938
+ };
939
+ };
940
+
941
+ const {
942
+ invoke: invoke$1} = create(ExtensionHostWorker);
943
+
944
+ const {
945
+ invoke} = create(RendererWorker);
946
+ const activateByEvent$1 = event => {
947
+ return invoke('ExtensionHostManagement.activateByEvent', event);
948
+ };
949
+ const getPreference = async key => {
950
+ return await invoke('Preferences.get', key);
951
+ };
952
+
953
+ const activateByEvent = event => {
954
+ return activateByEvent$1(event);
955
+ };
956
+
957
+ const executeProviders = async ({
958
+ combineResults,
959
+ event,
960
+ method,
961
+ noProviderFoundMessage = 'No provider found',
962
+ noProviderFoundResult,
963
+ params
964
+ }) => {
965
+ await activateByEvent(event);
966
+ // @ts-ignore
967
+ const result = await invoke$1(method, ...params);
968
+ return result;
969
+ };
970
+
971
+ const combineResults = results => {
972
+ return results.flat();
973
+ };
974
+ const getStatusBarItems$1 = () => {
975
+ return executeProviders({
976
+ combineResults,
977
+ event: OnStatusBarItem,
978
+ method: GetStatusBarItems,
979
+ noProviderFoundMessage: 'No status bar item provider found',
980
+ noProviderFoundResult: [],
981
+ params: []
982
+ });
983
+ };
984
+
985
+ const toUiStatusBarItem = extensionHostStatusBarItem => {
986
+ return {
987
+ command: extensionHostStatusBarItem.command || '',
988
+ icon: extensionHostStatusBarItem.icon || '',
989
+ name: extensionHostStatusBarItem.id || '',
990
+ text: extensionHostStatusBarItem.text || '',
991
+ tooltip: extensionHostStatusBarItem.tooltip || ''
992
+ };
993
+ };
994
+ const toUiStatusBarItems = statusBarItems => {
995
+ if (!statusBarItems) {
996
+ return [];
997
+ }
998
+ return statusBarItems.map(toUiStatusBarItem);
999
+ };
1000
+ const getStatusBarItems = async showItems => {
1001
+ if (!showItems) {
1002
+ return [];
1003
+ }
1004
+ await activateByEvent('onSourceControl');
1005
+ const extensionStatusBarItems = await getStatusBarItems$1();
1006
+ const uiStatusBarItems = toUiStatusBarItems(extensionStatusBarItems);
1007
+ return uiStatusBarItems;
1008
+ };
1009
+
1010
+ const get = async key => {
1011
+ return getPreference(key);
1012
+ };
1013
+
1014
+ const itemsVisible = async () => {
1015
+ const statusBarItemsPreference = (await get('statusBar.itemsVisible')) ?? false;
1016
+ return statusBarItemsPreference;
1017
+ };
1018
+
1019
+ const loadContent = async state => {
1020
+ const statusBarItemsPreference = await itemsVisible();
1021
+ const statusBarItems = await getStatusBarItems(statusBarItemsPreference);
1022
+ return {
1023
+ ...state,
1024
+ statusBarItemsLeft: [...statusBarItems]
1025
+ };
1026
+ };
1027
+
1028
+ const commandMap = {
1029
+ 'StatusBar.create': create$1,
1030
+ 'StatusBar.handleClick': handleClick,
1031
+ 'StatusBar.itemLeftUpdate': itemLeftUpdate,
1032
+ 'StatusBar.itemRightCreate': itemRightCreate,
1033
+ 'StatusBar.itemRightUpdate': itemRightUpdate,
1034
+ 'StatusBar.loadContent': loadContent,
1035
+ 'StatusBar.terminate': terminate
1036
+ };
841
1037
 
842
1038
  const listen = async () => {
843
1039
  await WebWorkerRpcClient.create({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/status-bar-worker",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Status Bar Worker",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,5 +9,8 @@
9
9
  "license": "MIT",
10
10
  "author": "Lvce Editor",
11
11
  "type": "module",
12
- "main": "dist/statusBarWorkerMain.js"
12
+ "main": "dist/statusBarWorkerMain.js",
13
+ "dependencies": {
14
+ "@lvce-editor/virtual-dom-worker": "^4.0.0"
15
+ }
13
16
  }