Skip to content

Commit 1b552a2

Browse files
committed
Do not use global ember -- internalize template resolution cache
1 parent dc8e1a8 commit 1b552a2

File tree

5 files changed

+33
-9
lines changed

5 files changed

+33
-9
lines changed

addon/addon/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
/* globals requirejs, require */
22

3-
import Ember from 'ember';
43
import { assert, deprecate, warn } from '@ember/debug';
54
import EmberObject from '@ember/object';
65
import { dasherize, classify, underscore } from './string';
76
import { DEBUG } from '@glimmer/env';
87
import classFactory from './utils/class-factory';
8+
import { getOwner } from '@ember/owner';
9+
10+
import { TEMPLATES } from './template-cache';
911

1012
if (typeof requirejs.entries === 'undefined') {
1113
requirejs.entries = requirejs._eak_seen;
@@ -295,7 +297,7 @@ class Resolver extends EmberObject {
295297
resolveTemplate(parsedName) {
296298
let resolved = this.resolveOther(parsedName);
297299
if (resolved == null) {
298-
resolved = Ember.TEMPLATES[parsedName.fullNameWithoutType];
300+
resolved = TEMPLATES[parsedName.fullNameWithoutType];
299301
}
300302
return resolved;
301303
}
@@ -459,7 +461,9 @@ class Resolver extends EmberObject {
459461

460462
// only needed until 1.6.0-beta.2 can be required
461463
_logLookup(found, parsedName, description) {
462-
if (!Ember.ENV.LOG_MODULE_RESOLVER && !parsedName.root.LOG_RESOLVER) {
464+
let owner = getOwner(this);
465+
let env = owner?.resolveRegistration?.('config:environment');
466+
if (!env?.LOG_MODULE_RESOLVER && !parsedName.root.LOG_RESOLVER) {
463467
return;
464468
}
465469

addon/addon/template-cache.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/**
2+
* Originally: https://github.com/emberjs/ember.js/blob/28444d536fa20debef2a67e2f18c5eb11113a4b5/packages/%40ember/-internals/glimmer/lib/template_registry.ts#L9
3+
*
4+
* import { TEMPLATES } from 'ember';
5+
*
6+
* Removed for RFC 1003
7+
*/
8+
export let TEMPLATES = {};

test-app/tests/unit/resolvers/classic/-setup-resolver.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import Resolver, { ModuleRegistry } from 'ember-resolver';
2+
import { setOwner } from '@ember/owner';
23

34
export let resolver;
45
export let loader;
56

67
export function setupResolver(options = {}) {
8+
let owner = options.owner;
9+
delete options.owner;
10+
711
if (!options.namespace) {
812
options.namespace = { modulePrefix: 'appkit' };
913
}
@@ -22,4 +26,8 @@ export function setupResolver(options = {}) {
2226
};
2327

2428
resolver = Resolver.create(options);
29+
30+
if (owner) {
31+
setOwner(resolver, owner);
32+
}
2533
}

test-app/tests/unit/resolvers/classic/basic-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/* eslint-disable no-console */
22

3-
import Ember from 'ember';
43
import { module, test } from 'qunit';
54
import { setupResolver, resolver, loader } from './-setup-resolver';
5+
import { TEMPLATES } from 'ember-resolver/template-cache';
66

77
let originalConsoleInfo;
88

@@ -434,7 +434,7 @@ module('ember-resolver/resolvers/classic', function (hooks) {
434434
});
435435

436436
test('can lookup templates via Ember.TEMPLATES', function (assert) {
437-
Ember.TEMPLATES['application'] = function () {
437+
TEMPLATES['application'] = function () {
438438
return '<h1>herp</h1>';
439439
};
440440

test-app/tests/unit/resolvers/classic/logging-test.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
import Ember from 'ember';
21
import { module, test } from 'qunit';
2+
import { setupTest } from 'ember-qunit';
33

44
import { setupResolver, resolver, loader } from './-setup-resolver';
55

66
let originalConsoleInfo, logCalls;
77

88
module('Logging', function (hooks) {
9+
setupTest(hooks);
10+
911
hooks.beforeEach(function () {
1012
originalConsoleInfo = console ? console.info : null;
1113
logCalls = [];
1214
console.info = function (arg) {
1315
logCalls.push(arg);
1416
};
15-
setupResolver();
17+
setupResolver({ owner: this.owner });
1618
});
1719

1820
hooks.afterEach(function () {
@@ -26,7 +28,8 @@ module('Logging', function (hooks) {
2628
return 'is logged';
2729
});
2830

29-
Ember.ENV.LOG_MODULE_RESOLVER = true;
31+
let env = this.owner.resolveRegistration('config:environment');
32+
env.LOG_MODULE_RESOLVER = true;
3033

3134
resolver.resolve('fruit:orange');
3235

@@ -38,7 +41,8 @@ module('Logging', function (hooks) {
3841
return 'is not logged';
3942
});
4043

41-
Ember.ENV.LOG_MODULE_RESOLVER = false;
44+
let env = this.owner.resolveRegistration('config:environment');
45+
env.LOG_MODULE_RESOLVER = false;
4246

4347
resolver.resolve('fruit:orange');
4448

0 commit comments

Comments
 (0)