@@ -97,19 +97,35 @@ export const Resolver = EmberObject.extend({
97
97
@public
98
98
*/
99
99
100
- const DefaultResolver = EmberObject . extend ( {
100
+ class DefaultResolver extends EmberObject {
101
+ constructor ( props ) {
102
+ if ( props == null ) {
103
+ throw new Error ( 'create missing props' ) ;
104
+ }
105
+ super ( props ) ;
106
+ }
107
+
108
+ static create ( props ) {
109
+ if ( props == null ) {
110
+ throw new Error ( 'static create missing props' ) ;
111
+ }
112
+ return super . create ( props ) ;
113
+ }
114
+
101
115
/**
102
116
This will be set to the Application instance when it is
103
117
created.
104
118
105
119
@property namespace
106
120
@public
107
121
*/
108
- namespace : null ,
109
122
110
123
init ( ) {
124
+ if ( this . namespace == null ) {
125
+ throw new Error ( 'init missing namespace' ) ;
126
+ }
111
127
this . _parseNameCache = dictionary ( null ) ;
112
- } ,
128
+ }
113
129
114
130
normalize ( fullName ) {
115
131
let [ type , name ] = fullName . split ( ':' ) ;
@@ -128,7 +144,7 @@ const DefaultResolver = EmberObject.extend({
128
144
} else {
129
145
return fullName ;
130
146
}
131
- } ,
147
+ }
132
148
133
149
/**
134
150
This method is called via the container's resolver method.
@@ -162,7 +178,7 @@ const DefaultResolver = EmberObject.extend({
162
178
}
163
179
164
180
return resolved ;
165
- } ,
181
+ }
166
182
167
183
/**
168
184
Convert the string name of the form 'type:name' to
@@ -178,7 +194,7 @@ const DefaultResolver = EmberObject.extend({
178
194
return (
179
195
this . _parseNameCache [ fullName ] || ( this . _parseNameCache [ fullName ] = this . _parseName ( fullName ) )
180
196
) ;
181
- } ,
197
+ }
182
198
183
199
_parseName ( fullName ) {
184
200
let [ type , fullNameWithoutType ] = fullName . split ( ':' ) ;
@@ -216,7 +232,7 @@ const DefaultResolver = EmberObject.extend({
216
232
root,
217
233
resolveMethodName : `resolve${ resolveMethodName } ` ,
218
234
} ;
219
- } ,
235
+ }
220
236
221
237
/**
222
238
Returns a human-readable description for a fullName. Used by the
@@ -243,11 +259,11 @@ const DefaultResolver = EmberObject.extend({
243
259
}
244
260
245
261
return description ;
246
- } ,
262
+ }
247
263
248
264
makeToString ( factory ) {
249
265
return factory . toString ( ) ;
250
- } ,
266
+ }
251
267
252
268
/**
253
269
Given a parseName object (output from `parseName`), apply
@@ -264,7 +280,7 @@ const DefaultResolver = EmberObject.extend({
264
280
} else {
265
281
parsedName . name = parsedName . name . replace ( / \. / g, '_' ) ;
266
282
}
267
- } ,
283
+ }
268
284
/**
269
285
Look up the template in Ember.TEMPLATES
270
286
@@ -277,7 +293,7 @@ const DefaultResolver = EmberObject.extend({
277
293
let templateName = parsedName . fullNameWithoutType . replace ( / \. / g, '/' ) ;
278
294
279
295
return getTemplate ( templateName ) || getTemplate ( decamelize ( templateName ) ) ;
280
- } ,
296
+ }
281
297
282
298
/**
283
299
Lookup the view using `resolveOther`
@@ -290,7 +306,7 @@ const DefaultResolver = EmberObject.extend({
290
306
resolveView ( parsedName ) {
291
307
this . useRouterNaming ( parsedName ) ;
292
308
return this . resolveOther ( parsedName ) ;
293
- } ,
309
+ }
294
310
295
311
/**
296
312
Lookup the controller using `resolveOther`
@@ -303,7 +319,7 @@ const DefaultResolver = EmberObject.extend({
303
319
resolveController ( parsedName ) {
304
320
this . useRouterNaming ( parsedName ) ;
305
321
return this . resolveOther ( parsedName ) ;
306
- } ,
322
+ }
307
323
/**
308
324
Lookup the route using `resolveOther`
309
325
@@ -315,7 +331,7 @@ const DefaultResolver = EmberObject.extend({
315
331
resolveRoute ( parsedName ) {
316
332
this . useRouterNaming ( parsedName ) ;
317
333
return this . resolveOther ( parsedName ) ;
318
- } ,
334
+ }
319
335
320
336
/**
321
337
Lookup the model on the Application namespace
@@ -330,7 +346,7 @@ const DefaultResolver = EmberObject.extend({
330
346
let factory = get ( parsedName . root , className ) ;
331
347
332
348
return factory ;
333
- } ,
349
+ }
334
350
/**
335
351
Look up the specified object (from parsedName) on the appropriate
336
352
namespace (usually on the Application)
@@ -342,7 +358,7 @@ const DefaultResolver = EmberObject.extend({
342
358
*/
343
359
resolveHelper ( parsedName ) {
344
360
return this . resolveOther ( parsedName ) ;
345
- } ,
361
+ }
346
362
/**
347
363
Look up the specified object (from parsedName) on the appropriate
348
364
namespace (usually on the Application)
@@ -356,12 +372,12 @@ const DefaultResolver = EmberObject.extend({
356
372
let className = classify ( parsedName . name ) + classify ( parsedName . type ) ;
357
373
let factory = get ( parsedName . root , className ) ;
358
374
return factory ;
359
- } ,
375
+ }
360
376
361
377
resolveMain ( parsedName ) {
362
378
let className = classify ( parsedName . type ) ;
363
379
return get ( parsedName . root , className ) ;
364
- } ,
380
+ }
365
381
366
382
/**
367
383
Used to iterate all items of a given type.
@@ -388,7 +404,7 @@ const DefaultResolver = EmberObject.extend({
388
404
}
389
405
390
406
return known ;
391
- } ,
407
+ }
392
408
393
409
/**
394
410
Converts provided name from the backing namespace into a container lookup name.
@@ -409,30 +425,28 @@ const DefaultResolver = EmberObject.extend({
409
425
let dasherizedName = dasherize ( namePrefix ) ;
410
426
411
427
return `${ type } :${ dasherizedName } ` ;
412
- } ,
413
- } ) ;
428
+ }
429
+ }
414
430
415
431
export default DefaultResolver ;
416
432
417
433
if ( DEBUG ) {
418
- DefaultResolver . reopen ( {
419
- /**
434
+ /**
420
435
@method _logLookup
421
436
@param {Boolean } found
422
437
@param {Object } parsedName
423
438
@private
424
439
*/
425
- _logLookup ( found , parsedName ) {
426
- let symbol = found ? '[✓]' : '[ ]' ;
427
-
428
- let padding ;
429
- if ( parsedName . fullName . length > 60 ) {
430
- padding = '.' ;
431
- } else {
432
- padding = new Array ( 60 - parsedName . fullName . length ) . join ( '.' ) ;
433
- }
440
+ DefaultResolver . prototype . _logLookup = function ( found , parsedName ) {
441
+ let symbol = found ? '[✓]' : '[ ]' ;
434
442
435
- info ( symbol , parsedName . fullName , padding , this . lookupDescription ( parsedName . fullName ) ) ;
436
- } ,
437
- } ) ;
443
+ let padding ;
444
+ if ( parsedName . fullName . length > 60 ) {
445
+ padding = '.' ;
446
+ } else {
447
+ padding = new Array ( 60 - parsedName . fullName . length ) . join ( '.' ) ;
448
+ }
449
+
450
+ info ( symbol , parsedName . fullName , padding , this . lookupDescription ( parsedName . fullName ) ) ;
451
+ } ;
438
452
}
0 commit comments