11/* globals requirejs, require */
22
3- import { assert , deprecate , warn } from '@ember/debug' ;
4- import EmberObject from '@ember/object' ;
53import { dasherize , classify , underscore } from './string' ;
6- import { DEBUG } from '@glimmer/env' ;
74import classFactory from './utils/class-factory' ;
85
9- import { getOwner } from '@ember/owner' ;
10-
116if ( typeof requirejs . entries === 'undefined' ) {
127 requirejs . entries = requirejs . _eak_seen ;
138}
@@ -38,13 +33,17 @@ export class ModuleRegistry {
3833 * 2) is able to provide injections to classes that implement `extend`
3934 * (as is typical with Ember).
4035 */
41- class Resolver extends EmberObject {
36+ export default class Resolver {
4237 static moduleBasedResolver = true ;
4338 moduleBasedResolver = true ;
4439
4540 _deprecatedPodModulePrefix = false ;
4641 _normalizeCache = Object . create ( null ) ;
4742
43+ static create ( props ) {
44+ return new this ( props ) ;
45+ }
46+
4847 /**
4948 A listing of functions to test for moduleName's based on the provided
5049 `parsedName`. This allows easy customization of additional module based
@@ -61,9 +60,8 @@ class Resolver extends EmberObject {
6160 this . nestedColocationComponentModuleName ,
6261 ] ;
6362
64- constructor ( ) {
65- super ( ...arguments ) ;
66-
63+ constructor ( props ) {
64+ Object . assign ( this , props ) ;
6765 if ( ! this . _moduleRegistry ) {
6866 this . _moduleRegistry = new ModuleRegistry ( ) ;
6967 }
@@ -337,7 +335,7 @@ class Resolver extends EmberObject {
337335 return tmpPrefix ;
338336 }
339337
340- findModuleName ( parsedName , loggingDisabled ) {
338+ findModuleName ( parsedName ) {
341339 let moduleNameLookupPatterns = this . moduleNameLookupPatterns ;
342340 let moduleName ;
343341
@@ -353,24 +351,20 @@ class Resolver extends EmberObject {
353351 // allow treat all dashed and all underscored as the same thing
354352 // supports components with dashes and other stuff with underscores.
355353 if ( tmpModuleName ) {
356- tmpModuleName = this . chooseModuleName ( tmpModuleName , parsedName ) ;
354+ tmpModuleName = this . chooseModuleName ( tmpModuleName ) ;
357355 }
358356
359357 if ( tmpModuleName && this . _moduleRegistry . has ( tmpModuleName ) ) {
360358 moduleName = tmpModuleName ;
361359 }
362360
363- if ( ! loggingDisabled ) {
364- this . _logLookup ( moduleName , parsedName , tmpModuleName ) ;
365- }
366-
367361 if ( moduleName ) {
368362 return moduleName ;
369363 }
370364 }
371365 }
372366
373- chooseModuleName ( moduleName , parsedName ) {
367+ chooseModuleName ( moduleName ) {
374368 let underscoredModuleName = underscore ( moduleName ) ;
375369
376370 if (
@@ -388,97 +382,6 @@ class Resolver extends EmberObject {
388382 } else if ( this . _moduleRegistry . has ( underscoredModuleName ) ) {
389383 return underscoredModuleName ;
390384 }
391- // workaround for dasherized partials:
392- // something/something/-something => something/something/_something
393- let partializedModuleName = moduleName . replace ( / \/ - ( [ ^ / ] * ) $ / , '/_$1' ) ;
394-
395- if ( this . _moduleRegistry . has ( partializedModuleName ) ) {
396- deprecate (
397- 'Modules should not contain underscores. ' +
398- 'Attempted to lookup "' +
399- moduleName +
400- '" which ' +
401- 'was not found. Please rename "' +
402- partializedModuleName +
403- '" ' +
404- 'to "' +
405- moduleName +
406- '" instead.' ,
407- false ,
408- {
409- id : 'ember-resolver.underscored-modules' ,
410- until : '3.0.0' ,
411- for : 'ember-resolver' ,
412- since : '0.1.0' ,
413- }
414- ) ;
415-
416- return partializedModuleName ;
417- }
418-
419- if ( DEBUG ) {
420- let isCamelCaseHelper =
421- parsedName . type === 'helper' && / [ a - z ] + [ A - Z ] + / . test ( moduleName ) ;
422- if ( isCamelCaseHelper ) {
423- this . _camelCaseHelperWarnedNames =
424- this . _camelCaseHelperWarnedNames || [ ] ;
425- let alreadyWarned =
426- this . _camelCaseHelperWarnedNames . indexOf ( parsedName . fullName ) > - 1 ;
427- if ( ! alreadyWarned && this . _moduleRegistry . has ( dasherize ( moduleName ) ) ) {
428- this . _camelCaseHelperWarnedNames . push ( parsedName . fullName ) ;
429- warn (
430- 'Attempted to lookup "' +
431- parsedName . fullName +
432- '" which ' +
433- 'was not found. In previous versions of ember-resolver, a bug would have ' +
434- 'caused the module at "' +
435- dasherize ( moduleName ) +
436- '" to be ' +
437- 'returned for this camel case helper name. This has been fixed. ' +
438- 'Use the dasherized name to resolve the module that would have been ' +
439- 'returned in previous versions.' ,
440- false ,
441- { id : 'ember-resolver.camelcase-helper-names' , until : '3.0.0' }
442- ) ;
443- }
444- }
445- }
446- }
447-
448- // used by Ember.DefaultResolver.prototype._logLookup
449- lookupDescription ( fullName ) {
450- let parsedName = this . parseName ( fullName ) ;
451-
452- let moduleName = this . findModuleName ( parsedName , true ) ;
453-
454- return moduleName ;
455- }
456-
457- // only needed until 1.6.0-beta.2 can be required
458- _logLookup ( found , parsedName , description ) {
459- let owner = getOwner ( this ) ;
460- let env = owner ?. resolveRegistration ?. ( 'config:environment' ) ;
461- if ( ! env ?. LOG_MODULE_RESOLVER && ! parsedName . root . LOG_RESOLVER ) {
462- return ;
463- }
464-
465- let padding ;
466- let symbol = found ? '[✓]' : '[ ]' ;
467-
468- if ( parsedName . fullName . length > 60 ) {
469- padding = '.' ;
470- } else {
471- padding = new Array ( 60 - parsedName . fullName . length ) . join ( '.' ) ;
472- }
473-
474- if ( ! description ) {
475- description = this . lookupDescription ( parsedName ) ;
476- }
477-
478- /* eslint-disable no-console */
479- if ( console && console . info ) {
480- console . info ( symbol , parsedName . fullName , padding , description ) ;
481- }
482385 }
483386
484387 knownForType ( type ) {
@@ -545,4 +448,8 @@ class Resolver extends EmberObject {
545448 }
546449}
547450
548- export default Resolver ;
451+ function assert ( message , check ) {
452+ if ( ! check ) {
453+ throw new Error ( message ) ;
454+ }
455+ }
0 commit comments