1
0
mirror of https://gitcode.com/github-mirrors/react-native-update-cli.git synced 2025-09-16 01:41:37 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee
Files
react-native-update-cli/lib/app.js
2020-02-19 00:18:43 +08:00

188 lines
6.2 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.commands = exports.chooseApp = exports.listApp = undefined;
let listApp = exports.listApp = function () {
var _ref = _asyncToGenerator(function* (platform) {
var _ref2 = yield get('/app/list');
const data = _ref2.data;
const list = platform ? data.filter(function (v) {
return v.platform === platform;
}) : data;
for (const app of list) {
console.log(`${app.id}) ${app.name}(${app.platform})`);
}
if (platform) {
console.log(`\nTotal ${list.length} ${platform} apps`);
} else {
console.log(`\nTotal ${list.length} apps`);
}
return list;
});
return function listApp(_x) {
return _ref.apply(this, arguments);
};
}();
let chooseApp = exports.chooseApp = function () {
var _ref3 = _asyncToGenerator(function* (platform) {
const list = yield listApp(platform);
while (true) {
const id = yield (0, _utils.question)('Enter appId:');
const app = list.find(function (v) {
return v.id === (id | 0);
});
if (app) {
return app;
}
}
});
return function chooseApp(_x2) {
return _ref3.apply(this, arguments);
};
}();
exports.checkPlatform = checkPlatform;
exports.getSelectedApp = getSelectedApp;
var _utils = require('./utils');
var _fsExtra = require('fs-extra');
var fs = _interopRequireWildcard(_fsExtra);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /**
* Created by tdzl2003 on 2/13/16.
*/
var _require = require('./api');
const post = _require.post,
get = _require.get,
doDelete = _require.doDelete;
const validPlatforms = {
ios: 1,
android: 1
};
function checkPlatform(platform) {
if (!validPlatforms[platform]) {
throw new Error(`Invalid platform '${platform}'`);
}
return platform;
}
function getSelectedApp(platform) {
checkPlatform(platform);
if (!fs.existsSync('update.json')) {
throw new Error(`App not selected. run 'pushy selectApp --platform ${platform}' first!`);
}
const updateInfo = JSON.parse(fs.readFileSync('update.json', 'utf8'));
if (!updateInfo[platform]) {
throw new Error(`App not selected. run 'pushy selectApp --platform ${platform}' first!`);
}
return updateInfo[platform];
}
const commands = exports.commands = {
createApp: function () {
var _ref4 = _asyncToGenerator(function* (_ref5) {
let options = _ref5.options;
const name = options.name || (yield (0, _utils.question)('App Name:'));
const downloadUrl = options.downloadUrl;
const platform = checkPlatform(options.platform || (yield (0, _utils.question)('Platform(ios/android):')));
var _ref6 = yield post('/app/create', { name, platform });
const id = _ref6.id;
console.log(`Created app ${id}`);
yield this.selectApp({
args: [id],
options: { platform, downloadUrl }
});
});
return function createApp(_x3) {
return _ref4.apply(this, arguments);
};
}(),
deleteApp: function () {
var _ref7 = _asyncToGenerator(function* (_ref8) {
let args = _ref8.args,
options = _ref8.options;
const platform = options.platform;
const id = args[0] || chooseApp(platform);
if (!id) {
console.log('Canceled');
}
yield doDelete(`/app/${id}`);
console.log('Ok.');
});
return function deleteApp(_x4) {
return _ref7.apply(this, arguments);
};
}(),
apps: function () {
var _ref9 = _asyncToGenerator(function* (_ref10) {
let options = _ref10.options;
const platform = options.platform;
listApp(platform);
});
return function apps(_x5) {
return _ref9.apply(this, arguments);
};
}(),
selectApp: function () {
var _ref11 = _asyncToGenerator(function* (_ref12) {
let args = _ref12.args,
options = _ref12.options;
const platform = checkPlatform(options.platform || (yield (0, _utils.question)('Platform(ios/android):')));
const id = args[0] || (yield chooseApp(platform)).id;
let updateInfo = {};
if (fs.existsSync('update.json')) {
try {
updateInfo = JSON.parse(fs.readFileSync('update.json', 'utf8'));
} catch (e) {
console.error('Failed to parse file `update.json`. Try to remove it manually.');
throw e;
}
}
var _ref13 = yield get(`/app/${id}`);
const appKey = _ref13.appKey;
updateInfo[platform] = {
appId: id,
appKey
};
fs.writeFileSync('update.json', JSON.stringify(updateInfo, null, 4), 'utf8');
});
return function selectApp(_x6) {
return _ref11.apply(this, arguments);
};
}()
};