From 8706879755f8443f726e65b87fae3fd5b9869cfc Mon Sep 17 00:00:00 2001 From: "Michael S. Molina" <70410625+michael-s-molina@users.noreply.github.com> Date: Wed, 21 Feb 2024 13:01:26 -0500 Subject: [PATCH] fix: Failed to execute importScripts on worker-css (#27191) (cherry picked from commit 983a1646c439116d0f65b7f2e9907ebb5046d672) --- .../src/components/AsyncAceEditor/index.tsx | 4 ++++ superset-frontend/src/types/ace-builds.ts | 19 +++++++++++++++++++ superset-frontend/webpack.config.js | 4 ++++ superset/views/core.py | 4 ++-- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 superset-frontend/src/types/ace-builds.ts diff --git a/superset-frontend/src/components/AsyncAceEditor/index.tsx b/superset-frontend/src/components/AsyncAceEditor/index.tsx index 2e499e150bb40..1b755f50ef3d1 100644 --- a/superset-frontend/src/components/AsyncAceEditor/index.tsx +++ b/superset-frontend/src/components/AsyncAceEditor/index.tsx @@ -24,11 +24,15 @@ import { TextMode as OrigTextMode, } from 'brace'; import AceEditor, { IAceEditorProps } from 'react-ace'; +import { config } from 'ace-builds'; import { acequire } from 'ace-builds/src-noconflict/ace'; import AsyncEsmComponent, { PlaceholderProps, } from 'src/components/AsyncEsmComponent'; import useEffectEvent from 'src/hooks/useEffectEvent'; +import cssWorkerUrl from 'ace-builds/src-noconflict/worker-css'; + +config.setModuleUrl('ace/mode/css_worker', cssWorkerUrl); export interface AceCompleterKeywordData { name: string; diff --git a/superset-frontend/src/types/ace-builds.ts b/superset-frontend/src/types/ace-builds.ts new file mode 100644 index 0000000000000..0c34a854034e7 --- /dev/null +++ b/superset-frontend/src/types/ace-builds.ts @@ -0,0 +1,19 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +declare module 'ace-builds/src-noconflict/worker-css'; diff --git a/superset-frontend/webpack.config.js b/superset-frontend/webpack.config.js index dea99be2cffe4..2fa922873eca3 100644 --- a/superset-frontend/webpack.config.js +++ b/superset-frontend/webpack.config.js @@ -346,6 +346,10 @@ const config = { ], use: [babelLoader], }, + { + test: /ace-builds.*\/worker-.*$/, + type: 'asset/resource', + }, // react-hot-loader use "ProxyFacade", which is a wrapper for react Component // see https://github.com/gaearon/react-hot-loader/issues/1311 // TODO: refactor recurseReactClone diff --git a/superset/views/core.py b/superset/views/core.py index 3e895e6b4b465..613ea89b34b1b 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -# pylint: disable=invalid-name +# pylint: disable=invalid-name,too-many-lines from __future__ import annotations import contextlib @@ -46,8 +46,8 @@ from superset.async_events.async_query_manager import AsyncQueryTokenException from superset.commands.chart.exceptions import ChartNotFoundError from superset.commands.chart.warm_up_cache import ChartWarmUpCacheCommand -from superset.commands.dashboard.importers.v0 import ImportDashboardsCommand from superset.commands.dashboard.exceptions import DashboardAccessDeniedError +from superset.commands.dashboard.importers.v0 import ImportDashboardsCommand from superset.commands.dashboard.permalink.get import GetDashboardPermalinkCommand from superset.commands.dataset.exceptions import DatasetNotFoundError from superset.commands.explore.form_data.create import CreateFormDataCommand