UNPKG

3.96 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _regenerator;
8
9function _load_regenerator() {
10 return _regenerator = _interopRequireDefault(require('babel-runtime/regenerator'));
11}
12
13var _asyncToGenerator2;
14
15function _load_asyncToGenerator() {
16 return _asyncToGenerator2 = _interopRequireDefault(require('babel-runtime/helpers/asyncToGenerator'));
17}
18
19var checkForUpdateAsync = function () {
20 var _ref2 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee2() {
21 var current, _ref3, latest, state;
22
23 return (_regenerator || _load_regenerator()).default.wrap(function _callee2$(_context2) {
24 while (1) {
25 switch (_context2.prev = _context2.next) {
26 case 0:
27 current = (_package || _load_package()).default.version;
28
29 // check for an outdated install based on either a fresh npm query or our cache
30
31 _context2.next = 3;
32 return UpdateCacher.getAsync();
33
34 case 3:
35 _ref3 = _context2.sent;
36 latest = _ref3.latestVersion;
37 state = void 0;
38 _context2.t0 = (_semver || _load_semver()).default.compare(current, latest);
39 _context2.next = _context2.t0 === -1 ? 9 : _context2.t0 === 0 ? 11 : _context2.t0 === 1 ? 13 : 15;
40 break;
41
42 case 9:
43 state = 'out-of-date';
44 return _context2.abrupt('break', 16);
45
46 case 11:
47 state = 'up-to-date';
48 return _context2.abrupt('break', 16);
49
50 case 13:
51 state = 'ahead-of-published';
52 return _context2.abrupt('break', 16);
53
54 case 15:
55 throw new Error('Confused about whether CLI is up-to-date or not');
56
57 case 16:
58 return _context2.abrupt('return', {
59 state: state,
60 current: current,
61 latest: latest
62 });
63
64 case 17:
65 case 'end':
66 return _context2.stop();
67 }
68 }
69 }, _callee2, this);
70 }));
71
72 return function checkForUpdateAsync() {
73 return _ref2.apply(this, arguments);
74 };
75}();
76
77var _jsonFile;
78
79function _load_jsonFile() {
80 return _jsonFile = _interopRequireDefault(require('@expo/json-file'));
81}
82
83var _path = _interopRequireDefault(require('path'));
84
85var _semver;
86
87function _load_semver() {
88 return _semver = _interopRequireDefault(require('semver'));
89}
90
91var _spawnAsync;
92
93function _load_spawnAsync() {
94 return _spawnAsync = _interopRequireDefault(require('@expo/spawn-async'));
95}
96
97var _xdl;
98
99function _load_xdl() {
100 return _xdl = require('xdl');
101}
102
103var _package;
104
105function _load_package() {
106 return _package = _interopRequireDefault(require('../package.json'));
107}
108
109function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
110
111var UpdateCacher = new (_xdl || _load_xdl()).FsCache.Cacher((0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee() {
112 var result;
113 return (_regenerator || _load_regenerator()).default.wrap(function _callee$(_context) {
114 while (1) {
115 switch (_context.prev = _context.next) {
116 case 0:
117 _context.next = 2;
118 return (0, (_spawnAsync || _load_spawnAsync()).default)('npm', ['view', (_package || _load_package()).default.name, 'version']);
119
120 case 2:
121 result = _context.sent;
122 return _context.abrupt('return', { latestVersion: result.stdout.trim() });
123
124 case 4:
125 case 'end':
126 return _context.stop();
127 }
128 }
129 }, _callee, undefined);
130})), (_package || _load_package()).default.name + '-updates.json', 24 * 60 * 60 * 1000 // one day
131);
132
133exports.default = {
134 checkForUpdateAsync: checkForUpdateAsync
135};
136module.exports = exports['default'];
137//# sourceMappingURL=__sourcemaps__/update.js.map