/
update.ts
35 lines (33 loc) · 990 Bytes
/
update.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { types, flow } from 'mobx-state-tree';
import CodePush from 'react-native-code-push';
import VersionNumber from 'react-native-version-number';
import { UpdateMetadata } from './models/UpdateMetadata';
export const Update = types
.model('Update', {
updateMetadata: types.maybeNull(UpdateMetadata),
version: VersionNumber.appVersion,
build: VersionNumber.buildVersion,
})
.views(self => ({
get updateDescription() {
const { description = null } = self.updateMetadata || {};
return description;
},
get updateVersion() {
const { label = null } = self.updateMetadata || {};
return label;
},
get appVersion() {
return `${self.version || 'unknown'}${self.build ? ` (build ${self.build})` : ''}`;
},
}))
.actions(self => ({
update() {
return flow(function* () {
self.updateMetadata = yield CodePush.getUpdateMetadata();
})();
},
}))
.create();
// Update CodePush
Update.update();