mirror of
https://github.com/apache/superset.git
synced 2026-04-21 17:14:57 +00:00
feat: Dynamically imported viz plugins (#10288)
* first attempts at dynamic plugin loading * dynamic import working for explore * memoize appropriately * add a backend for dynamic plugins * hack at getting dynamic plugins working with dashboards * more work on making it work, + feature flag * lint * actions to fix explore state when plugins load * handle dynamic control panel, functionify ExploreViewContainer * fix: rearrange migrations branch * fix: name and key as strings with length 50 * bundle url length 2000 * bundle url to text for some reason not supported on my sql * fix: too long varchart * fix: pre-commit typing * fix: licenses * fix: add slice container was not initing feature flags * fix: undo linting issue * fix: adjust down revision again * fix: adjust down revision again * isort * pylint * god damn linters * remove unnecessary(?) loading message * only log non-standard errors * testing * python is terrible * see above commit message * fix imports in DynamicPluginProvider * fix * shift migration forward * lint * fix form data calculations to handle missing control config * temp commit - waiting for superset-ui changes and crud fixes * remove unnecessary todo * use new superset-ui shared module function * fetch the plugins instead of hardcoding the test one * migration sort * remove duplicated import statement * format * try moving the import 🙄 * copy * fix frontend tests * safe access * comment out dead code * isort * disable pylint on necessary lines * use @superset-ui/logging instead of console * remove temp code * rearrange some code * try triggering mouseover in cypress before click * use loading spinner instead of text * trying to fix cypress * attempt cypress fix * customize permissions * update package lock * only admins can write to plugins by default * better copy * disable flaky tests * use makeApi * flaky tests * cleanup code * flaaaakkkyyyyyy * dry Co-authored-by: amitNielsen <amit.miran@nielsen.com>
This commit is contained in:
committed by
GitHub
parent
4a471b8c71
commit
b5dd0f32cc
@@ -36,6 +36,10 @@ export type ClientErrorObject = {
|
||||
stacktrace?: string;
|
||||
} & Partial<SupersetClientResponse>;
|
||||
|
||||
interface ResponseWithTimeout extends Response {
|
||||
timeout: number;
|
||||
}
|
||||
|
||||
export function parseErrorJson(responseObject: JsonObject): ClientErrorObject {
|
||||
let error = { ...responseObject };
|
||||
// Backwards compatibility for old error renderers with the new error object
|
||||
@@ -63,7 +67,7 @@ export function parseErrorJson(responseObject: JsonObject): ClientErrorObject {
|
||||
}
|
||||
|
||||
export function getClientErrorObject(
|
||||
response: SupersetClientResponse | (Response & { timeout: number }) | string,
|
||||
response: SupersetClientResponse | ResponseWithTimeout | string,
|
||||
): Promise<ClientErrorObject> {
|
||||
// takes a SupersetClientResponse as input, attempts to read response as Json if possible,
|
||||
// and returns a Promise that resolves to a plain object with error key and text value.
|
||||
@@ -85,7 +89,7 @@ export function getClientErrorObject(
|
||||
})
|
||||
.catch(() => {
|
||||
// fall back to reading as text
|
||||
responseObject.text().then(errorText => {
|
||||
responseObject.text().then((errorText: any) => {
|
||||
resolve({ ...responseObject, error: errorText });
|
||||
});
|
||||
});
|
||||
@@ -124,10 +128,12 @@ export function getClientErrorObject(
|
||||
});
|
||||
} else {
|
||||
// fall back to Response.statusText or generic error of we cannot read the response
|
||||
const error =
|
||||
'statusText' in response
|
||||
? response.statusText
|
||||
: t('An error occurred');
|
||||
let error = (response as any).statusText || (response as any).message;
|
||||
if (!error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error('non-standard error:', response);
|
||||
error = t('An error occurred');
|
||||
}
|
||||
resolve({
|
||||
...responseObject,
|
||||
error,
|
||||
|
||||
Reference in New Issue
Block a user