Skip to content

Commit 8360bcc

Browse files
committed
fix meta store issues
1 parent 93095cd commit 8360bcc

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

app/services/meta-store.js

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,53 @@
1-
import Service from '@ember/service';
1+
import Service, { inject as service } from '@ember/service';
22
import { isPresent } from '@ember/utils';
33
import { set } from '@ember/object';
44
import { A } from '@ember/array';
55
import getCompactVersion from 'ember-api-docs/utils/get-compact-version';
66
import getLastVersion from 'ember-api-docs/utils/get-last-version';
77

88
export default Service.extend({
9+
fastboot: service(),
910

1011
availableProjectVersions: null,
1112
projectRevMap: null,
1213

1314
init() {
15+
this._super(...arguments);
16+
17+
if (this.fastboot.isFastBoot) {
18+
this.createProperties();
19+
this.updateShoebox();
20+
} else {
21+
this.availableProjectVersions = this.fastboot.shoebox.retrieve('availableProjectVersions');
22+
this.projectRevMap = this.fastboot.shoebox.retrieve('projectRevMap');
23+
}
24+
25+
if (!this.availableProjectVersions || !this.projectRevMap) {
26+
this.createProperties();
27+
}
28+
},
29+
30+
createProperties() {
1431
this.availableProjectVersions = {
1532
'ember': A(),
1633
'ember-data':A()
1734
};
1835
this.projectRevMap = {};
19-
this._super(...arguments);
36+
},
37+
38+
updateShoebox() {
39+
if (this.fastboot.isFastBoot) {
40+
this.fastboot.shoebox.put('availableProjectVersions', this.availableProjectVersions);
41+
this.fastboot.shoebox.put('projectMap',this.projectRevMap);
42+
}
2043
},
2144

2245
addToProjectRevMap(projectVersionKey, projectRevDoc) {
2346
let projectRevMap = this.projectRevMap;
2447
if (!isPresent(projectRevMap[projectVersionKey])) {
2548
projectRevMap[projectVersionKey] = projectRevDoc;
2649
set(this, 'projectRevMap', projectRevMap);
50+
this.updateShoebox();
2751
}
2852
},
2953

@@ -43,7 +67,8 @@ export default Service.extend({
4367
'ember-data': A(availableProjectVersions['ember-data'])
4468
},
4569
projectRevMap: projectRevMap
46-
})
70+
});
71+
this.updateShoebox();
4772
},
4873

4974
getFullVersion(projectName, compactProjVersion) {

0 commit comments

Comments
 (0)