1
- import Service from '@ember/service' ;
1
+ import Service , { inject as service } from '@ember/service' ;
2
2
import { isPresent } from '@ember/utils' ;
3
3
import { set } from '@ember/object' ;
4
4
import { A } from '@ember/array' ;
5
5
import getCompactVersion from 'ember-api-docs/utils/get-compact-version' ;
6
6
import getLastVersion from 'ember-api-docs/utils/get-last-version' ;
7
7
8
8
export default Service . extend ( {
9
+ fastboot : service ( ) ,
9
10
10
11
availableProjectVersions : null ,
11
12
projectRevMap : null ,
12
13
13
14
init ( ) {
14
- this . availableProjectVersions = {
15
- 'ember' : A ( ) ,
16
- 'ember-data' :A ( )
17
- } ;
18
- this . projectRevMap = { } ;
19
15
this . _super ( ...arguments ) ;
16
+ if ( this . fastboot . isFastBoot ) {
17
+ this . availableProjectVersions = {
18
+ 'ember' : A ( ) ,
19
+ 'ember-data' :A ( )
20
+ } ;
21
+ this . projectRevMap = { } ;
22
+ } else {
23
+ this . availableProjectVersions = this . fastboot . shoebox . retrieve ( 'availableProjectVersions' ) ;
24
+ this . projectRevMap = this . fastboot . shoebox . retrieve ( 'projectRevMap' ) ;
25
+ }
26
+ } ,
27
+
28
+ updateShoebox ( ) {
29
+ if ( this . fastboot . isFastBoot ) {
30
+ this . fastboot . shoebox . put ( 'availableProjectVersions' ) ;
31
+ this . fastboot . shoebox . put ( 'projectMap' ) ;
32
+ }
20
33
} ,
21
34
22
35
addToProjectRevMap ( projectVersionKey , projectRevDoc ) {
23
36
let projectRevMap = this . projectRevMap ;
24
37
if ( ! isPresent ( projectRevMap [ projectVersionKey ] ) ) {
25
38
projectRevMap [ projectVersionKey ] = projectRevDoc ;
26
39
set ( this , 'projectRevMap' , projectRevMap ) ;
40
+ this . updateShoebox ( ) ;
27
41
}
28
42
} ,
29
43
@@ -43,7 +57,8 @@ export default Service.extend({
43
57
'ember-data' : A ( availableProjectVersions [ 'ember-data' ] )
44
58
} ,
45
59
projectRevMap : projectRevMap
46
- } )
60
+ } ) ;
61
+ this . updateShoebox ( ) ;
47
62
} ,
48
63
49
64
getFullVersion ( projectName , compactProjVersion ) {
0 commit comments