Skip to content

Commit 3a6ed80

Browse files
committed
Do not use global ember -- internalize template resolution cache
1 parent fe73b7d commit 3a6ed80

File tree

4 files changed

+48
-11
lines changed

4 files changed

+48
-11
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: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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 = {};
9+
10+
export function setTemplates(templates) {
11+
TEMPLATES = templates;
12+
}
13+
14+
export function getTemplates() {
15+
return TEMPLATES;
16+
}
17+
18+
export function getTemplate(name) {
19+
if (Object.prototype.hasOwnProperty.call(TEMPLATES, name)) {
20+
return TEMPLATES[name];
21+
}
22+
}
23+
24+
export function hasTemplate(name) {
25+
return Object.prototype.hasOwnProperty.call(TEMPLATES, name);
26+
}
27+
28+
export function setTemplate(name, template) {
29+
return (TEMPLATES[name] = template);
30+
}

package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import Ember from 'ember';
44
import { module, test } from 'qunit';
55
import Resolver, { ModuleRegistry } from 'ember-resolver';
6+
import { TEMPLATES } from 'ember-resolver/template-cache';
67

78
let originalConsoleInfo, logCalls, resolver, loader;
89

@@ -456,7 +457,7 @@ test('can lookup templates with mixed naming moduleName', function (assert) {
456457
});
457458

458459
test('can lookup templates via Ember.TEMPLATES', function (assert) {
459-
Ember.TEMPLATES['application'] = function () {
460+
TEMPLATES['application'] = function () {
460461
return '<h1>herp</h1>';
461462
};
462463

@@ -695,7 +696,9 @@ test('logs lookups when logging is enabled', function (assert) {
695696
return 'is logged';
696697
});
697698

698-
Ember.ENV.LOG_MODULE_RESOLVER = true;
699+
this.owner.resolveRegistration(
700+
'config:environment'
701+
).LOG_MODULE_RESOLVER = true;
699702

700703
resolver.resolve('fruit:orange');
701704

0 commit comments

Comments
 (0)