Fix monaco editor issues (#4724)

* Add sub filter for monaco editor

* Don't include files for unused languages

* Move necessary files and cleanup build

* Update sub filter for new location

* Still need to include default editor worker

* Fix error when model already exists
This commit is contained in:
Nicolas Mowen 2022-12-17 16:55:41 -07:00 committed by GitHub
parent c6f0abf732
commit 7953d131ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 3 deletions

View File

@ -269,7 +269,9 @@ COPY web/package.json web/package-lock.json ./
RUN npm install
COPY web/ ./
RUN npm run build
RUN npm run build \
&& mv dist/BASE_PATH/monacoeditorwork/* dist/assets/ \
&& rm -rf dist/BASE_PATH
# Collect final files in a single layer
FROM scratch AS rootfs

View File

@ -243,6 +243,7 @@ http {
sub_filter '"/BASE_PATH/dist/' '"$http_x_ingress_path/dist/';
sub_filter '"/BASE_PATH/js/' '"$http_x_ingress_path/js/';
sub_filter '"/BASE_PATH/assets/' '"$http_x_ingress_path/assets/';
sub_filter '"/BASE_PATH/monacoeditorwork/' '"$http_x_ingress_path/assets/';
sub_filter 'return"/BASE_PATH/"' 'return window.baseUrl';
sub_filter '<body>' '<body><script>window.baseUrl="$http_x_ingress_path/";</script>';
sub_filter_types text/css application/javascript;

View File

@ -50,6 +50,13 @@ export default function Config() {
const modelUri = Uri.parse('a://b/api/config/schema.json');
let yamlModel;
if (editor.getModels().length > 0) {
yamlModel = editor.getModel(modelUri)
} else {
yamlModel = editor.createModel(config, 'yaml', modelUri)
}
setDiagnosticsOptions({
enableSchemaRequest: true,
hover: true,
@ -66,7 +73,7 @@ export default function Config() {
window.editor = editor.create(document.getElementById('container'), {
language: 'yaml',
model: editor.createModel(config, 'yaml', modelUri),
model: yamlModel,
scrollBeyondLastLine: false,
theme: 'vs-dark',
});

View File

@ -10,7 +10,8 @@ export default defineConfig({
'import.meta.vitest': 'undefined',
},
plugins: [preact(), monacoEditorPlugin.default({
customWorkers: [{label: 'yaml', entry: 'monaco-yaml/yaml.worker'}]
customWorkers: [{ label: 'yaml', entry: 'monaco-yaml/yaml.worker' }],
languageWorkers: ['editorWorkerService'], // we don't use any of the default languages
})],
test: {
environment: 'jsdom',