@lvce-editor/status-bar-worker 1.1.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.
- package/dist/statusBarWorkerMain.js +209 -13
- package/package.json +5 -2
|
@@ -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
|
|
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.
|
|
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
|
}
|