From 6c6f788ef07ea8e406b303e4d192fac641ba005c Mon Sep 17 00:00:00 2001 From: Anton Kulyk <kuliks.anton@gmail.com> Date: Fri, 20 Jan 2023 09:36:41 +0000 Subject: [PATCH] Avoid dynamic require (#27780) --- frontend/src/metabase/entities/revisions.js | 18 ++++++------- frontend/src/metabase/entities/search.js | 30 ++++++++++++++------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/frontend/src/metabase/entities/revisions.js b/frontend/src/metabase/entities/revisions.js index 47fcb0fbc2e..20d79b3c2e6 100644 --- a/frontend/src/metabase/entities/revisions.js +++ b/frontend/src/metabase/entities/revisions.js @@ -2,9 +2,10 @@ import { createEntity } from "metabase/lib/entities"; import { GET, POST } from "metabase/lib/api"; -const listRevisions = GET("/api/revision"); +import Dashboards from "./dashboards"; +import Questions from "./questions"; -const ASSOCIATED_ENTITY_TYPES = ["questions", "dashboards"]; +const listRevisions = GET("/api/revision"); const Revision = createEntity({ name: "revisions", @@ -35,14 +36,11 @@ const Revision = createEntity({ }, actionShouldInvalidateLists(action) { - const entities = require("metabase/entities"); - for (const type of ASSOCIATED_ENTITY_TYPES) { - if (entities[type].actionShouldInvalidateLists(action)) { - return true; - } - } - - return action.type === this.actionTypes.INVALIDATE_LISTS_ACTION; + return ( + action.type === this.actionTypes.INVALIDATE_LISTS_ACTION || + Dashboards.actionShouldInvalidateLists(action) || + Questions.actionShouldInvalidateLists(action) + ); }, }); diff --git a/frontend/src/metabase/entities/search.js b/frontend/src/metabase/entities/search.js index 3d7dc6221eb..4c8c119574e 100644 --- a/frontend/src/metabase/entities/search.js +++ b/frontend/src/metabase/entities/search.js @@ -3,11 +3,19 @@ import { createEntity } from "metabase/lib/entities"; import { GET } from "metabase/lib/api"; import { entityTypeForObject } from "metabase/lib/schema"; -import { ObjectUnionSchema, ENTITIES_SCHEMA_MAP } from "metabase/schema"; +import { ObjectUnionSchema } from "metabase/schema"; import { canonicalCollectionId } from "metabase/collections/utils"; -const ENTITIES_TYPES = Object.keys(ENTITIES_SCHEMA_MAP); +import Bookmarks from "./bookmarks"; +import Collections from "./collections"; +import Dashboards from "./dashboards"; +import Metrics from "./metrics"; +import Pulses from "./pulses"; +import Questions from "./questions"; +import Segments from "./segments"; +import Snippets from "./snippets"; +import SnippetCollections from "./snippet-collections"; const searchList = GET("/api/search"); const collectionList = GET("/api/collection/:collection/items"); @@ -82,12 +90,16 @@ export default createEntity({ // delegate to each entity's actionShouldInvalidateLists actionShouldInvalidateLists(action) { - const entities = require("metabase/entities"); - for (const type of ENTITIES_TYPES) { - if (entities[type].actionShouldInvalidateLists(action)) { - return true; - } - } - return false; + return ( + Bookmarks.actionShouldInvalidateLists(action) || + Collections.actionShouldInvalidateLists(action) || + Dashboards.actionShouldInvalidateLists(action) || + Metrics.actionShouldInvalidateLists(action) || + Pulses.actionShouldInvalidateLists(action) || + Questions.actionShouldInvalidateLists(action) || + Segments.actionShouldInvalidateLists(action) || + Snippets.actionShouldInvalidateLists(action) || + SnippetCollections.actionShouldInvalidateLists(action) + ); }, }); -- GitLab