From 8000002b1b26b0139a3b95e04db8f2d9ca44e034 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Fri, 5 Nov 2021 13:20:45 -0400 Subject: [PATCH] =?UTF-8?q?refactor:=20=F0=9F=92=A1=20remove=20ember-get-c?= =?UTF-8?q?onfig=20dep=20from=20core?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/core/addon/helpers/app-name.js | 13 ++++--- .../core/addon/helpers/company-copyright.js | 15 +++++--- addons/core/addon/helpers/company-name.js | 13 ++++--- addons/core/addon/helpers/doc-url.js | 37 ++++++++++--------- .../core/addon/initializers/deprecations.js | 7 ++-- addons/core/addon/services/confirm.js | 12 +++++- addons/core/package.json | 1 - .../tests/integration/helpers/doc-url-test.js | 5 ++- 8 files changed, 61 insertions(+), 42 deletions(-) diff --git a/addons/core/addon/helpers/app-name.js b/addons/core/addon/helpers/app-name.js index a45e86cc6..69c73c730 100644 --- a/addons/core/addon/helpers/app-name.js +++ b/addons/core/addon/helpers/app-name.js @@ -1,6 +1,9 @@ -import { helper } from '@ember/component/helper'; -import config from 'ember-get-config'; +import Helper from '@ember/component/helper'; +import { getOwner } from '@ember/application'; -export default helper(function appName() { - return config.appName; -}); +export default class extends Helper { + compute() { + const config = getOwner(this).resolveRegistration('config:environment'); + return config.appName; + } +} diff --git a/addons/core/addon/helpers/company-copyright.js b/addons/core/addon/helpers/company-copyright.js index 26154cf22..cccf95d46 100644 --- a/addons/core/addon/helpers/company-copyright.js +++ b/addons/core/addon/helpers/company-copyright.js @@ -1,7 +1,10 @@ -import { helper } from '@ember/component/helper'; -import config from 'ember-get-config'; +import Helper from '@ember/component/helper'; +import { getOwner } from '@ember/application'; -export default helper(function companyCopyright() { - const currentYear = new Date().getFullYear(); - return `© ${currentYear} ${config.companyName}`; -}); +export default class extends Helper { + compute() { + const config = getOwner(this).resolveRegistration('config:environment'); + const currentYear = new Date().getFullYear(); + return `© ${currentYear} ${config.companyName}`; + } +} diff --git a/addons/core/addon/helpers/company-name.js b/addons/core/addon/helpers/company-name.js index 8fda6bc78..4aa13af1e 100644 --- a/addons/core/addon/helpers/company-name.js +++ b/addons/core/addon/helpers/company-name.js @@ -1,6 +1,9 @@ -import { helper } from '@ember/component/helper'; -import config from 'ember-get-config'; +import Helper from '@ember/component/helper'; +import { getOwner } from '@ember/application'; -export default helper(function companyName() { - return config.companyName; -}); +export default class extends Helper { + compute() { + const config = getOwner(this).resolveRegistration('config:environment'); + return config.companyName; + } +} diff --git a/addons/core/addon/helpers/doc-url.js b/addons/core/addon/helpers/doc-url.js index 563b67a44..b09c96165 100644 --- a/addons/core/addon/helpers/doc-url.js +++ b/addons/core/addon/helpers/doc-url.js @@ -1,20 +1,23 @@ -import { helper } from '@ember/component/helper'; +import Helper from '@ember/component/helper'; +import { getOwner } from '@ember/application'; import { assert } from '@ember/debug'; -import config from 'ember-get-config'; -export default helper(function docUrl(params /*, hash*/) { - const baseURL = config.documentation.baseURL; - const docKey = params[0] || ''; - const configuredPath = config.documentation.topics[docKey]; - if (docKey) { - assert( - ` - Documentation for "${docKey}" could not be found. Please ensure that - this key exists under "documentation" in your app config. - `, - configuredPath - ); +export default class extends Helper { + compute(params) { + const config = getOwner(this).resolveRegistration('config:environment'); + const baseURL = config.documentation.baseURL; + const docKey = params[0] || ''; + const configuredPath = config.documentation.topics[docKey]; + if (docKey) { + assert( + ` + Documentation for "${docKey}" could not be found. Please ensure that + this key exists under "documentation" in your app config. + `, + configuredPath + ); + } + const path = configuredPath || ''; + return `${baseURL}${path}`; } - const path = configuredPath || ''; - return `${baseURL}${path}`; -}); +} diff --git a/addons/core/addon/initializers/deprecations.js b/addons/core/addon/initializers/deprecations.js index c955b7e4b..3baf1a60b 100644 --- a/addons/core/addon/initializers/deprecations.js +++ b/addons/core/addon/initializers/deprecations.js @@ -1,9 +1,8 @@ import { registerDeprecationHandler } from '@ember/debug'; -import config from 'ember-get-config'; -const isTesting = config.environment === 'test'; - -export function initialize(/* application */) { +export function initialize(application) { + const config = application.resolveRegistration('config:environment'); + const isTesting = config.environment === 'test'; if (isTesting) { // Disable all deprecations for now in tests. registerDeprecationHandler((/*message, options, next*/) => { diff --git a/addons/core/addon/services/confirm.js b/addons/core/addon/services/confirm.js index e63a76fdf..9d2413da9 100644 --- a/addons/core/addon/services/confirm.js +++ b/addons/core/addon/services/confirm.js @@ -3,7 +3,7 @@ import { filterBy } from '@ember/object/computed'; import { A } from '@ember/array'; import { tracked } from '@glimmer/tracking'; import { defer, resolve } from 'rsvp'; -import config from 'ember-get-config'; +import { getOwner } from '@ember/application'; /** * A simple service that emits Confirmation instances and @@ -17,13 +17,21 @@ import config from 'ember-get-config'; export default class ConfirmationsService extends Service { // =attributes + #enabled; + /** * When the confirm service is disabled, it always returns resolving promises. * By default the service is enabled but it is useful to disable it for test * purposes. * @type {boolean} */ - enabled = config.enableConfirmService ?? true; + get enabled() { + const config = getOwner(this).resolveRegistration('config:environment'); + return this.#enabled ?? config.enableConfirmService ?? true; + } + set enabled(value) { + this.#enabled = value; + } /** * @type {Array} diff --git a/addons/core/package.json b/addons/core/package.json index c12f03dcd..b51acc24b 100644 --- a/addons/core/package.json +++ b/addons/core/package.json @@ -34,7 +34,6 @@ "ember-cli-babel": "^7.26.6", "ember-cli-htmlbars": "^5.7.1", "ember-feature-flags": "^6.0.0", - "ember-get-config": "^0.3.0", "ember-intl": "^5.7.0", "ember-loading": "^0.4.0", "ember-route-action-helper": "^2.0.8", diff --git a/addons/core/tests/integration/helpers/doc-url-test.js b/addons/core/tests/integration/helpers/doc-url-test.js index 26d017095..6267c73e6 100644 --- a/addons/core/tests/integration/helpers/doc-url-test.js +++ b/addons/core/tests/integration/helpers/doc-url-test.js @@ -2,13 +2,13 @@ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; import { render } from '@ember/test-helpers'; import { hbs } from 'ember-cli-htmlbars'; -import config from 'ember-get-config'; module('Integration | Helper | doc-url', function (hooks) { setupRenderingTest(hooks); test('it renders a URL generated from the documentation config', async function (assert) { assert.expect(3); + const config = this.owner.resolveRegistration('config:environment'); const baseURL = config.documentation.baseURL; const path = config.documentation.topics.account; await render(hbs`{{doc-url 'account'}}`); @@ -19,7 +19,8 @@ module('Integration | Helper | doc-url', function (hooks) { test('it throws an error if the specified documentation path cannot be found', async function (assert) { assert.expect(2); - const helper = this.owner.lookup('helper:doc-url'); + const Helper = this.owner.lookup('helper:doc-url'); + const helper = new Helper(this.owner); assert.ok(helper.compute(['account']), 'Specified document exists.'); assert.throws(() => { helper.compute(['no.such.doc']);