monaco-languageclient-examples 2025.8.2 → 2025.8.4
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/CHANGELOG.md +9 -0
- package/dist/appPlayground/common.d.ts +2 -2
- package/dist/appPlayground/common.d.ts.map +1 -1
- package/dist/appPlayground/common.js +2 -3
- package/dist/appPlayground/common.js.map +1 -1
- package/dist/appPlayground/config.d.ts +4 -2
- package/dist/appPlayground/config.d.ts.map +1 -1
- package/dist/appPlayground/config.js +65 -63
- package/dist/appPlayground/config.js.map +1 -1
- package/dist/appPlayground/launcher.js +1 -1
- package/dist/appPlayground/launcher.js.map +1 -1
- package/dist/appPlayground/main.d.ts.map +1 -1
- package/dist/appPlayground/main.js +5 -4
- package/dist/appPlayground/main.js.map +1 -1
- package/dist/appPlayground/reactLauncher.js +1 -1
- package/dist/appPlayground/reactLauncher.js.map +1 -1
- package/dist/appPlayground/reactMain.d.ts.map +1 -1
- package/dist/appPlayground/reactMain.js +2 -3
- package/dist/appPlayground/reactMain.js.map +1 -1
- package/dist/bare/client.d.ts.map +1 -1
- package/dist/bare/client.js +12 -15
- package/dist/bare/client.js.map +1 -1
- package/dist/browser/main.d.ts.map +1 -1
- package/dist/browser/main.js +28 -27
- package/dist/browser/main.js.map +1 -1
- package/dist/clangd/client/config.d.ts +10 -3
- package/dist/clangd/client/config.d.ts.map +1 -1
- package/dist/clangd/client/config.js +85 -85
- package/dist/clangd/client/config.js.map +1 -1
- package/dist/clangd/client/main.d.ts.map +1 -1
- package/dist/clangd/client/main.js +12 -9
- package/dist/clangd/client/main.js.map +1 -1
- package/dist/common/client/extendedClient.d.ts +9 -0
- package/dist/common/client/extendedClient.d.ts.map +1 -0
- package/dist/common/client/extendedClient.js +97 -0
- package/dist/common/client/extendedClient.js.map +1 -0
- package/dist/common/client/utils.d.ts +8 -1
- package/dist/common/client/utils.d.ts.map +1 -1
- package/dist/common/client/utils.js +0 -3
- package/dist/common/client/utils.js.map +1 -1
- package/dist/debugger/client/debugger.d.ts +1 -1
- package/dist/debugger/client/debugger.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/client/main.d.ts +1 -1
- package/dist/eclipse.jdt.ls/client/main.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/client/main.js +4 -74
- package/dist/eclipse.jdt.ls/client/main.js.map +1 -1
- package/dist/eclipse.jdt.ls/config.d.ts +2 -5
- package/dist/eclipse.jdt.ls/config.d.ts.map +1 -1
- package/dist/eclipse.jdt.ls/config.js +2 -1
- package/dist/eclipse.jdt.ls/config.js.map +1 -1
- package/dist/groovy/client/main.d.ts +1 -1
- package/dist/groovy/client/main.d.ts.map +1 -1
- package/dist/groovy/client/main.js +4 -63
- package/dist/groovy/client/main.js.map +1 -1
- package/dist/groovy/config.d.ts +2 -5
- package/dist/groovy/config.d.ts.map +1 -1
- package/dist/groovy/config.js +2 -1
- package/dist/groovy/config.js.map +1 -1
- package/dist/json/client/client.d.ts +3 -0
- package/dist/json/client/client.d.ts.map +1 -0
- package/dist/json/client/client.js +13 -0
- package/dist/json/client/client.js.map +1 -0
- package/dist/json/client/config.d.ts +3 -0
- package/dist/json/client/config.d.ts.map +1 -0
- package/dist/json/client/config.js +11 -0
- package/dist/json/client/config.js.map +1 -0
- package/dist/json/server/main.js.map +1 -1
- package/dist/langium/langium-dsl/config/classicConfig.d.ts +2 -2
- package/dist/langium/langium-dsl/config/classicConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/classicConfig.js +53 -45
- package/dist/langium/langium-dsl/config/classicConfig.js.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts +2 -2
- package/dist/langium/langium-dsl/config/extendedConfig.d.ts.map +1 -1
- package/dist/langium/langium-dsl/config/extendedConfig.js +40 -40
- package/dist/langium/langium-dsl/config/extendedConfig.js.map +1 -1
- package/dist/langium/langium-dsl/wrapperLangium.d.ts.map +1 -1
- package/dist/langium/langium-dsl/wrapperLangium.js +23 -16
- package/dist/langium/langium-dsl/wrapperLangium.js.map +1 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts +4 -4
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.d.ts.map +1 -1
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js +40 -41
- package/dist/langium/statemachine/config/wrapperStatemachineConfig.js.map +1 -1
- package/dist/langium/statemachine/launcher.js +1 -1
- package/dist/langium/statemachine/launcher.js.map +1 -1
- package/dist/langium/statemachine/main-react.js +2 -3
- package/dist/langium/statemachine/main-react.js.map +1 -1
- package/dist/langium/statemachine/main.d.ts.map +1 -1
- package/dist/langium/statemachine/main.js +38 -27
- package/dist/langium/statemachine/main.js.map +1 -1
- package/dist/multi/config.d.ts +1 -1
- package/dist/multi/config.d.ts.map +1 -1
- package/dist/multi/config.js +0 -1
- package/dist/multi/config.js.map +1 -1
- package/dist/multi/twoLanguageClients.d.ts.map +1 -1
- package/dist/multi/twoLanguageClients.js +45 -49
- package/dist/multi/twoLanguageClients.js.map +1 -1
- package/dist/node.d.ts +0 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +0 -3
- package/dist/node.js.map +1 -1
- package/dist/python/client/config.d.ts +7 -3
- package/dist/python/client/config.d.ts.map +1 -1
- package/dist/python/client/config.js +93 -97
- package/dist/python/client/config.js.map +1 -1
- package/dist/python/client/main.d.ts.map +1 -1
- package/dist/python/client/main.js +16 -10
- package/dist/python/client/main.js.map +1 -1
- package/dist/python/client/reactPython.d.ts.map +1 -1
- package/dist/python/client/reactPython.js +8 -9
- package/dist/python/client/reactPython.js.map +1 -1
- package/dist/ts/wrapperTs.d.ts.map +1 -1
- package/dist/ts/wrapperTs.js +50 -45
- package/dist/ts/wrapperTs.js.map +1 -1
- package/json.html +1 -1
- package/package.json +39 -40
- package/src/appPlayground/common.ts +3 -3
- package/src/appPlayground/config.ts +69 -65
- package/src/appPlayground/launcher.ts +2 -1
- package/src/appPlayground/main.ts +8 -5
- package/src/appPlayground/reactLauncher.ts +2 -1
- package/src/appPlayground/reactMain.tsx +4 -4
- package/src/bare/client.ts +15 -16
- package/src/browser/main.ts +29 -27
- package/src/clangd/client/config.ts +97 -87
- package/src/clangd/client/main.ts +14 -10
- package/src/common/client/extendedClient.ts +111 -0
- package/src/common/client/utils.ts +7 -2
- package/src/debugger/client/debugger.ts +1 -1
- package/src/eclipse.jdt.ls/client/main.ts +4 -78
- package/src/eclipse.jdt.ls/config.ts +6 -2
- package/src/groovy/client/main.ts +4 -65
- package/src/groovy/config.ts +6 -2
- package/src/json/client/client.ts +14 -0
- package/src/json/client/config.ts +13 -0
- package/src/json/server/main.ts +1 -1
- package/src/langium/langium-dsl/config/classicConfig.ts +64 -48
- package/src/langium/langium-dsl/config/extendedConfig.ts +49 -42
- package/src/langium/langium-dsl/wrapperLangium.ts +25 -15
- package/src/langium/statemachine/config/wrapperStatemachineConfig.ts +48 -45
- package/src/langium/statemachine/launcher.ts +1 -1
- package/src/langium/statemachine/main-react.tsx +4 -4
- package/src/langium/statemachine/main.ts +43 -27
- package/src/multi/config.ts +3 -3
- package/src/multi/twoLanguageClients.ts +48 -52
- package/src/node.ts +0 -3
- package/src/python/client/config.ts +101 -99
- package/src/python/client/main.ts +20 -11
- package/src/python/client/reactPython.tsx +11 -10
- package/src/ts/wrapperTs.ts +52 -45
- package/two_langauge_clients.html +0 -1
- package/dist/json/client/wrapperWs.d.ts +0 -5
- package/dist/json/client/wrapperWs.d.ts.map +0 -1
- package/dist/json/client/wrapperWs.js +0 -87
- package/dist/json/client/wrapperWs.js.map +0 -1
- package/src/json/client/wrapperWs.ts +0 -90
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
<button type="button" id="button-start">Start</button>
|
|
16
16
|
<button type="button" id="button-dispose">Dispose</button>
|
|
17
17
|
<button type="button" id="button-flip">Flip Content</button>
|
|
18
|
-
<label>External Lanuguage Clients:</label><input type="checkbox" id="checkbox-extlc" />
|
|
19
18
|
</div>
|
|
20
19
|
<div id="monaco-editor-root" style="width:800px;height:600px;border:1px solid grey"></div>
|
|
21
20
|
<script type="module">
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
2
|
-
import { type WrapperConfig } from 'monaco-editor-wrapper';
|
|
3
|
-
export declare const buildJsonClientUserConfig: (htmlContainer?: HTMLElement) => WrapperConfig;
|
|
4
|
-
export declare const runJsonWrapper: () => void;
|
|
5
|
-
//# sourceMappingURL=wrapperWs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrapperWs.d.ts","sourceRoot":"","sources":["../../../src/json/client/wrapperWs.ts"],"names":[],"mappings":"AAOA,OAAO,iDAAiD,CAAC;AAEzD,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAQ9F,eAAO,MAAM,yBAAyB,GAAI,gBAAgB,WAAW,KAAG,aAwDvE,CAAC;AAEF,eAAO,MAAM,cAAc,YAc1B,CAAC"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
6
|
-
// this is required syntax highlighting
|
|
7
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
8
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
9
|
-
import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';
|
|
10
|
-
import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders';
|
|
11
|
-
const text = `{
|
|
12
|
-
"$schema": "http://json.schemastore.org/coffeelint",
|
|
13
|
-
"line_endings": {"value": "unix"}
|
|
14
|
-
}`;
|
|
15
|
-
export const buildJsonClientUserConfig = (htmlContainer) => {
|
|
16
|
-
return {
|
|
17
|
-
$type: 'extended',
|
|
18
|
-
htmlContainer,
|
|
19
|
-
logLevel: LogLevel.Debug,
|
|
20
|
-
vscodeApiConfig: {
|
|
21
|
-
serviceOverrides: {
|
|
22
|
-
...getKeybindingsServiceOverride(),
|
|
23
|
-
},
|
|
24
|
-
userConfiguration: {
|
|
25
|
-
json: JSON.stringify({
|
|
26
|
-
'workbench.colorTheme': 'Default Dark Modern',
|
|
27
|
-
'editor.guides.bracketPairsHorizontal': 'active',
|
|
28
|
-
'editor.lightbulb.enabled': 'On',
|
|
29
|
-
'editor.wordBasedSuggestions': 'off',
|
|
30
|
-
'editor.experimental.asyncTokenization': true
|
|
31
|
-
})
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
editorAppConfig: {
|
|
35
|
-
codeResources: {
|
|
36
|
-
modified: {
|
|
37
|
-
text,
|
|
38
|
-
uri: '/workspace/test.json',
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
42
|
-
},
|
|
43
|
-
languageClientConfigs: {
|
|
44
|
-
configs: {
|
|
45
|
-
json: {
|
|
46
|
-
clientOptions: {
|
|
47
|
-
documentSelector: ['json']
|
|
48
|
-
},
|
|
49
|
-
connection: {
|
|
50
|
-
options: {
|
|
51
|
-
$type: 'WebSocketUrl',
|
|
52
|
-
url: 'ws://localhost:30000/sampleServer',
|
|
53
|
-
startOptions: {
|
|
54
|
-
onCall: () => {
|
|
55
|
-
console.log('Connected to socket.');
|
|
56
|
-
},
|
|
57
|
-
reportStatus: true
|
|
58
|
-
},
|
|
59
|
-
stopOptions: {
|
|
60
|
-
onCall: () => {
|
|
61
|
-
console.log('Disconnected from socket.');
|
|
62
|
-
},
|
|
63
|
-
reportStatus: true
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
export const runJsonWrapper = () => {
|
|
73
|
-
const wrapper = new MonacoEditorLanguageClientWrapper();
|
|
74
|
-
try {
|
|
75
|
-
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
76
|
-
const config = buildJsonClientUserConfig(document.getElementById('monaco-editor-root'));
|
|
77
|
-
await wrapper.initAndStart(config);
|
|
78
|
-
});
|
|
79
|
-
document.querySelector('#button-dispose')?.addEventListener('click', async () => {
|
|
80
|
-
await wrapper.dispose();
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
catch (e) {
|
|
84
|
-
console.error(e);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
//# sourceMappingURL=wrapperWs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrapperWs.js","sourceRoot":"","sources":["../../../src/json/client/wrapperWs.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,6BAA6B,MAAM,uDAAuD,CAAC;AAClG,uCAAuC;AACvC,OAAO,iDAAiD,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAsB,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAE5F,MAAM,IAAI,GAAG;;;EAGX,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,aAA2B,EAAiB,EAAE;IACpF,OAAO;QACH,KAAK,EAAE,UAAU;QACjB,aAAa;QACb,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,eAAe,EAAE;YACb,gBAAgB,EAAE;gBACd,GAAG,6BAA6B,EAAE;aACrC;YACD,iBAAiB,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,sBAAsB,EAAE,qBAAqB;oBAC7C,sCAAsC,EAAE,QAAQ;oBAChD,0BAA0B,EAAE,IAAI;oBAChC,6BAA6B,EAAE,KAAK;oBACpC,uCAAuC,EAAE,IAAI;iBAChD,CAAC;aACL;SACJ;QACD,eAAe,EAAE;YACb,aAAa,EAAE;gBACX,QAAQ,EAAE;oBACN,IAAI;oBACJ,GAAG,EAAE,sBAAsB;iBAC9B;aACJ;YACD,mBAAmB,EAAE,6BAA6B;SACrD;QACD,qBAAqB,EAAE;YACnB,OAAO,EAAE;gBACL,IAAI,EAAE;oBACF,aAAa,EAAE;wBACX,gBAAgB,EAAE,CAAC,MAAM,CAAC;qBAC7B;oBACD,UAAU,EAAE;wBACR,OAAO,EAAE;4BACL,KAAK,EAAE,cAAc;4BACrB,GAAG,EAAE,mCAAmC;4BACxC,YAAY,EAAE;gCACV,MAAM,EAAE,GAAG,EAAE;oCACT,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gCACxC,CAAC;gCACD,YAAY,EAAE,IAAI;6BACrB;4BACD,WAAW,EAAE;gCACT,MAAM,EAAE,GAAG,EAAE;oCACT,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gCAC7C,CAAC;gCACD,YAAY,EAAE,IAAI;6BACrB;yBACJ;qBACJ;iBACJ;aACJ;SACJ;KACJ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,IAAI,iCAAiC,EAAE,CAAC;IAExD,IAAI,CAAC;QACD,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAE,CAAC,CAAC;YACzF,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/* --------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) 2024 TypeFox and others.
|
|
3
|
-
* Licensed under the MIT License. See LICENSE in the package root for license information.
|
|
4
|
-
* ------------------------------------------------------------------------------------------ */
|
|
5
|
-
|
|
6
|
-
import getKeybindingsServiceOverride from '@codingame/monaco-vscode-keybindings-service-override';
|
|
7
|
-
// this is required syntax highlighting
|
|
8
|
-
import '@codingame/monaco-vscode-json-default-extension';
|
|
9
|
-
import { LogLevel } from '@codingame/monaco-vscode-api';
|
|
10
|
-
import { MonacoEditorLanguageClientWrapper, type WrapperConfig } from 'monaco-editor-wrapper';
|
|
11
|
-
import { configureDefaultWorkerFactory } from 'monaco-editor-wrapper/workers/workerLoaders';
|
|
12
|
-
|
|
13
|
-
const text = `{
|
|
14
|
-
"$schema": "http://json.schemastore.org/coffeelint",
|
|
15
|
-
"line_endings": {"value": "unix"}
|
|
16
|
-
}`;
|
|
17
|
-
|
|
18
|
-
export const buildJsonClientUserConfig = (htmlContainer?: HTMLElement): WrapperConfig => {
|
|
19
|
-
return {
|
|
20
|
-
$type: 'extended',
|
|
21
|
-
htmlContainer,
|
|
22
|
-
logLevel: LogLevel.Debug,
|
|
23
|
-
vscodeApiConfig: {
|
|
24
|
-
serviceOverrides: {
|
|
25
|
-
...getKeybindingsServiceOverride(),
|
|
26
|
-
},
|
|
27
|
-
userConfiguration: {
|
|
28
|
-
json: JSON.stringify({
|
|
29
|
-
'workbench.colorTheme': 'Default Dark Modern',
|
|
30
|
-
'editor.guides.bracketPairsHorizontal': 'active',
|
|
31
|
-
'editor.lightbulb.enabled': 'On',
|
|
32
|
-
'editor.wordBasedSuggestions': 'off',
|
|
33
|
-
'editor.experimental.asyncTokenization': true
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
editorAppConfig: {
|
|
38
|
-
codeResources: {
|
|
39
|
-
modified: {
|
|
40
|
-
text,
|
|
41
|
-
uri: '/workspace/test.json',
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
monacoWorkerFactory: configureDefaultWorkerFactory
|
|
45
|
-
},
|
|
46
|
-
languageClientConfigs: {
|
|
47
|
-
configs: {
|
|
48
|
-
json: {
|
|
49
|
-
clientOptions: {
|
|
50
|
-
documentSelector: ['json']
|
|
51
|
-
},
|
|
52
|
-
connection: {
|
|
53
|
-
options: {
|
|
54
|
-
$type: 'WebSocketUrl',
|
|
55
|
-
url: 'ws://localhost:30000/sampleServer',
|
|
56
|
-
startOptions: {
|
|
57
|
-
onCall: () => {
|
|
58
|
-
console.log('Connected to socket.');
|
|
59
|
-
},
|
|
60
|
-
reportStatus: true
|
|
61
|
-
},
|
|
62
|
-
stopOptions: {
|
|
63
|
-
onCall: () => {
|
|
64
|
-
console.log('Disconnected from socket.');
|
|
65
|
-
},
|
|
66
|
-
reportStatus: true
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export const runJsonWrapper = () => {
|
|
77
|
-
const wrapper = new MonacoEditorLanguageClientWrapper();
|
|
78
|
-
|
|
79
|
-
try {
|
|
80
|
-
document.querySelector('#button-start')?.addEventListener('click', async () => {
|
|
81
|
-
const config = buildJsonClientUserConfig(document.getElementById('monaco-editor-root')!);
|
|
82
|
-
await wrapper.initAndStart(config);
|
|
83
|
-
});
|
|
84
|
-
document.querySelector('#button-dispose')?.addEventListener('click', async () => {
|
|
85
|
-
await wrapper.dispose();
|
|
86
|
-
});
|
|
87
|
-
} catch (e) {
|
|
88
|
-
console.error(e);
|
|
89
|
-
}
|
|
90
|
-
};
|