diff --git a/mu-trees/addon/ember-config.js b/mu-trees/addon/ember-config.js index 54f21a10..7fe192fd 100644 --- a/mu-trees/addon/ember-config.js +++ b/mu-trees/addon/ember-config.js @@ -15,10 +15,16 @@ export default function generateConfig(name) { adapter: { definitiveCollection: 'models' }, application: { definitiveCollection: 'main' }, controller: { definitiveCollection: 'routes' }, - component: { definitiveCollection: 'components' }, + component: { + definitiveCollection: 'components', + privateCollection: 'components' + }, 'component-lookup': { definitiveCollection: 'main' }, event_dispatcher: { definitiveCollection: 'main' }, - helper: { definitiveCollection: 'components' }, + helper: { + definitiveCollection: 'components', + privateCollection: 'components' + }, initializer: { definitiveCollection: 'initializers' }, 'instance-initializers': { definitiveCollection: 'instance-initializer' }, location: { definitiveCollection: 'main' }, @@ -31,6 +37,7 @@ export default function generateConfig(name) { service: { definitiveCollection: 'services' }, template: { definitiveCollection: 'routes', + privateCollection: 'components', fallbackCollectionPrefixes: { 'components': 'components' } diff --git a/mu-trees/addon/resolvers/glimmer-wrapper/index.js b/mu-trees/addon/resolvers/glimmer-wrapper/index.js index 4f41df56..0b6f85b1 100644 --- a/mu-trees/addon/resolvers/glimmer-wrapper/index.js +++ b/mu-trees/addon/resolvers/glimmer-wrapper/index.js @@ -24,9 +24,9 @@ const Resolver = DefaultResolver.extend({ normalize: null, - resolve(lookupString) { + resolve(lookupString, referrer) { /* - * Ember paritals are looked up as templates. Here we replace the template + * Ember partials are looked up as templates. Here we replace the template * resolution with a partial resolute when appropriate. Try to keep this * code as "pay-go" as possible. */ @@ -34,11 +34,25 @@ const Resolver = DefaultResolver.extend({ if (lookupString.indexOf('template:') === 0) { lookupString = this._templateToPartial(lookupString); } - return this._resolve(lookupString); + return this._resolve(lookupString, referrer); }, - _resolve(lookupString) { - return this._glimmerResolver.resolve(lookupString); + _resolve(lookupString, referrer) { + if (referrer) { + // make absolute + let appName = this.config.app.name; + let parts = referrer.split(':src/ui/'); + referrer = `${parts[0]}:/${appName}/${parts[1]}`; + referrer = referrer.split('/template.hbs')[0]; + + // glimmer resolver will throw and error if specifier has as collection + let match = lookupString.match(/^template:components\/(.*)/); + if (match) { + lookupString = `template:${match[1]}`; + } + } + + return this._glimmerResolver.resolve(lookupString, referrer); }, /*