From 5a565105c9505ff3e65308489ae2bd2b033c5502 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Mon, 13 Jan 2025 14:08:25 +0000 Subject: [PATCH] DEV: Move `discourse-common/resolver` to `discourse/resolver` (#30737) `discourse-common` was created in the past to share logic between the 'wizard' app and the main 'discourse' app. Since then, the wizard has been consolidated into the main app, so the separation of `discourse-common` is no longer useful. This commit moves `discourse-common/resolver` into `discourse/resolver`, adds shims for the imports, and updates existing uses in core. --- .npmrc | 1 + app/assets/javascripts/discourse/app/app.js | 2 +- .../discourse/app/discourse-common-loader-shims.js | 5 +++++ .../discourse/app/instance-initializers/mobile.js | 2 +- app/assets/javascripts/discourse/app/lib/raw-templates.js | 2 +- .../{discourse-common/addon => discourse/app}/resolver.js | 0 app/assets/javascripts/discourse/package.json | 1 + .../javascripts/discourse/tests/helpers/create-store.js | 2 +- .../javascripts/discourse/tests/helpers/qunit-helpers.js | 2 +- .../discourse/tests/helpers/temporary-module-helper.js | 2 +- app/assets/javascripts/discourse/tests/setup-tests.js | 2 +- .../javascripts/discourse/tests/unit/ember/resolver-test.js | 2 +- pnpm-lock.yaml | 3 +++ 13 files changed, 18 insertions(+), 8 deletions(-) rename app/assets/javascripts/{discourse-common/addon => discourse/app}/resolver.js (100%) diff --git a/.npmrc b/.npmrc index 89ddd358b37..16e9c48b18f 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ engine-strict = true auto-install-peers = false +ignore-workspace-cycles = true diff --git a/app/assets/javascripts/discourse/app/app.js b/app/assets/javascripts/discourse/app/app.js index 69fccf0b7b3..31e6f45f906 100644 --- a/app/assets/javascripts/discourse/app/app.js +++ b/app/assets/javascripts/discourse/app/app.js @@ -16,8 +16,8 @@ import { VERSION } from "@ember/version"; import require from "require"; import { normalizeEmberEventHandling } from "discourse/lib/ember-events"; import { withPluginApi } from "discourse/lib/plugin-api"; +import { buildResolver } from "discourse/resolver"; import { isTesting } from "discourse-common/config/environment"; -import { buildResolver } from "discourse-common/resolver"; const _pluginCallbacks = []; let _unhandledThemeErrors = []; diff --git a/app/assets/javascripts/discourse/app/discourse-common-loader-shims.js b/app/assets/javascripts/discourse/app/discourse-common-loader-shims.js index cdfbf972118..74354a5894d 100644 --- a/app/assets/javascripts/discourse/app/discourse-common-loader-shims.js +++ b/app/assets/javascripts/discourse/app/discourse-common-loader-shims.js @@ -124,3 +124,8 @@ loaderShim("discourse-common/utils/macro-alias", () => loaderShim("discourse-common/utils/multi-cache", () => importSync("discourse/lib/multi-cache") ); + +loaderShim("discourse-common/deprecation-workflow", () => + importSync("discourse/deprecation-workflow") +); +loaderShim("discourse-common/resolver", () => importSync("discourse/resolver")); diff --git a/app/assets/javascripts/discourse/app/instance-initializers/mobile.js b/app/assets/javascripts/discourse/app/instance-initializers/mobile.js index b09277801ac..3ec75c580cf 100644 --- a/app/assets/javascripts/discourse/app/instance-initializers/mobile.js +++ b/app/assets/javascripts/discourse/app/instance-initializers/mobile.js @@ -1,5 +1,5 @@ import Mobile from "discourse/lib/mobile"; -import { setResolverOption } from "discourse-common/resolver"; +import { setResolverOption } from "discourse/resolver"; // Initializes the `Mobile` helper object. export default { diff --git a/app/assets/javascripts/discourse/app/lib/raw-templates.js b/app/assets/javascripts/discourse/app/lib/raw-templates.js index dbc8e5ddeb3..9dc58e8f729 100644 --- a/app/assets/javascripts/discourse/app/lib/raw-templates.js +++ b/app/assets/javascripts/discourse/app/lib/raw-templates.js @@ -1,7 +1,7 @@ import require from "require"; import deprecated from "discourse/lib/deprecated"; import { RAW_TOPIC_LIST_DEPRECATION_OPTIONS } from "discourse/lib/plugin-api"; -import { getResolverOption } from "discourse-common/resolver"; +import { getResolverOption } from "discourse/resolver"; export const __DISCOURSE_RAW_TEMPLATES = {}; let _needsHbrTopicList = false; diff --git a/app/assets/javascripts/discourse-common/addon/resolver.js b/app/assets/javascripts/discourse/app/resolver.js similarity index 100% rename from app/assets/javascripts/discourse-common/addon/resolver.js rename to app/assets/javascripts/discourse/app/resolver.js diff --git a/app/assets/javascripts/discourse/package.json b/app/assets/javascripts/discourse/package.json index 6b06342afd8..c83605f53cf 100644 --- a/app/assets/javascripts/discourse/package.json +++ b/app/assets/javascripts/discourse/package.json @@ -26,6 +26,7 @@ "discourse-hbr": "workspace:1.0.0", "discourse-widget-hbs": "workspace:1.0.0", "ember-curry-component": "^0.1.0", + "ember-resolver": "^13.1.0", "ember-route-template": "^1.0.3", "ember-tracked-storage-polyfill": "^1.0.0", "handlebars": "^4.7.8", diff --git a/app/assets/javascripts/discourse/tests/helpers/create-store.js b/app/assets/javascripts/discourse/tests/helpers/create-store.js index cf9ae34e26a..1d5cc252142 100644 --- a/app/assets/javascripts/discourse/tests/helpers/create-store.js +++ b/app/assets/javascripts/discourse/tests/helpers/create-store.js @@ -5,9 +5,9 @@ import KeyValueStore from "discourse/lib/key-value-store"; import RestModel from "discourse/models/rest"; import Site from "discourse/models/site"; import TopicTrackingState from "discourse/models/topic-tracking-state"; +import { buildResolver } from "discourse/resolver"; import Store from "discourse/services/store"; import { currentSettings } from "discourse/tests/helpers/site-settings"; -import { buildResolver } from "discourse-common/resolver"; class CatAdapter extends RestAdapter { primaryKey = "cat_id"; diff --git a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js index 199c4390cee..ede1f279674 100644 --- a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js +++ b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js @@ -90,6 +90,7 @@ import { clearAddedTrackedPostProperties } from "discourse/models/post"; import { resetLastEditNotificationClick } from "discourse/models/post-stream"; import Site from "discourse/models/site"; import User from "discourse/models/user"; +import { clearResolverOptions } from "discourse/resolver"; import sessionFixtures from "discourse/tests/fixtures/session-fixtures"; import siteFixtures from "discourse/tests/fixtures/site-fixtures"; import { @@ -99,7 +100,6 @@ import { import { resetDecorators as resetPostCookedDecorators } from "discourse/widgets/post-cooked"; import { resetPostMenuExtraButtons } from "discourse/widgets/post-menu"; import { resetDecorators } from "discourse/widgets/widget"; -import { clearResolverOptions } from "discourse-common/resolver"; import I18n from "discourse-i18n"; import { _clearSnapshots } from "select-kit/components/composer-actions"; import { setupDSelectAssertions } from "./d-select-assertions"; diff --git a/app/assets/javascripts/discourse/tests/helpers/temporary-module-helper.js b/app/assets/javascripts/discourse/tests/helpers/temporary-module-helper.js index 5311973420a..e76d89e0dfd 100644 --- a/app/assets/javascripts/discourse/tests/helpers/temporary-module-helper.js +++ b/app/assets/javascripts/discourse/tests/helpers/temporary-module-helper.js @@ -1,6 +1,6 @@ import DiscourseTemplateMap from "discourse/lib/discourse-template-map"; import { expireConnectorCache } from "discourse/lib/plugin-connectors"; -import { expireModuleTrieCache } from "discourse-common/resolver"; +import { expireModuleTrieCache } from "discourse/resolver"; const modifications = []; diff --git a/app/assets/javascripts/discourse/tests/setup-tests.js b/app/assets/javascripts/discourse/tests/setup-tests.js index bb14d6d1290..0f5be0a86a6 100644 --- a/app/assets/javascripts/discourse/tests/setup-tests.js +++ b/app/assets/javascripts/discourse/tests/setup-tests.js @@ -43,7 +43,7 @@ import { disableCloaking } from "discourse/widgets/post-stream"; import deprecated from "discourse/lib/deprecated"; import { setDefaultOwner } from "discourse/lib/get-owner"; import { setupS3CDN, setupURL } from "discourse/lib/get-url"; -import { buildResolver } from "discourse-common/resolver"; +import { buildResolver } from "discourse/resolver"; import { loadSprites } from "../lib/svg-sprite-loader"; import * as FakerModule from "@faker-js/faker"; import { setLoadedFaker } from "discourse/lib/load-faker"; diff --git a/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js b/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js index 25ef5cc2f7e..4fded0e823a 100644 --- a/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js +++ b/app/assets/javascripts/discourse/tests/unit/ember/resolver-test.js @@ -2,8 +2,8 @@ import { setupTest } from "ember-qunit"; import { module, test } from "qunit"; import { withSilencedDeprecations } from "discourse/lib/deprecated"; import DiscourseTemplateMap from "discourse/lib/discourse-template-map"; +import { buildResolver, setResolverOption } from "discourse/resolver"; import { registerTemporaryModule } from "discourse/tests/helpers/temporary-module-helper"; -import { buildResolver, setResolverOption } from "discourse-common/resolver"; let resolver; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a2ecb1546d..0de273171b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -299,6 +299,9 @@ importers: ember-curry-component: specifier: ^0.1.0 version: 0.1.0(@babel/core@7.26.0) + ember-resolver: + specifier: ^13.1.0 + version: 13.1.0(ember-source@5.12.0(patch_hash=xx7mvsb7nmshqkkqhmf45r3hse)(@glimmer/component@1.1.2(@babel/core@7.26.0))(@glint/template@1.5.1)(rsvp@4.8.5)(webpack@5.97.1(@swc/core@1.10.7)(esbuild@0.24.2))) ember-route-template: specifier: ^1.0.3 version: 1.0.3