1 | import { EventEmitter } from 'fbemitter';
|
2 | import { DeviceEventEmitter } from 'react-native';
|
3 | import * as Updates from './Updates';
|
4 | export function reload() {
|
5 | console.warn('Util.reload is deprecated and will be removed in SDK 31, use Updates.reload instead');
|
6 | return Updates.reload();
|
7 | }
|
8 | let _emitter;
|
9 | function _getEmitter() {
|
10 | if (!_emitter) {
|
11 | _emitter = new EventEmitter();
|
12 | DeviceEventEmitter.addListener('Exponent.nativeUpdatesEvent', _emitNewVersionAvailable);
|
13 | }
|
14 | return _emitter;
|
15 | }
|
16 | function _emitNewVersionAvailable(newVersionEvent) {
|
17 | if (typeof newVersionEvent === 'string') {
|
18 | newVersionEvent = JSON.parse(newVersionEvent);
|
19 | }
|
20 |
|
21 | if (newVersionEvent.type === 'downloadFinished') {
|
22 | if (newVersionEvent.manifestString && typeof newVersionEvent.manifestString === 'string') {
|
23 | newVersionEvent.manifest = JSON.parse(newVersionEvent.manifestString);
|
24 | delete newVersionEvent.manifestString;
|
25 | }
|
26 | delete newVersionEvent.type;
|
27 | if (!_emitter) {
|
28 | throw new Error(`EventEmitter must be initialized to use from its listener`);
|
29 | }
|
30 | _emitter.emit('newVersionAvailable', newVersionEvent);
|
31 | }
|
32 | }
|
33 | export function addNewVersionListenerExperimental(listener) {
|
34 | console.warn('Util.addNewVersionListenerExperimental is deprecated and will be removed in SDK 31, use Updates.addListener instead');
|
35 | let emitter = _getEmitter();
|
36 | return emitter.addListener('newVersionAvailable', listener);
|
37 | }
|
38 |
|
\ | No newline at end of file |