react-native-integrate
Version:
Automate integration of additional code into React Native projects
68 lines (67 loc) • 3.89 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.importFromOldProject = importFromOldProject;
const picocolors_1 = __importDefault(require("picocolors"));
const options_1 = require("../../options");
const prompter_1 = require("../../prompter");
const importAndroidAppId_1 = require("./android/importAndroidAppId");
const importAndroidDisplayName_1 = require("./android/importAndroidDisplayName");
const importAndroidLaunchIcon_1 = require("./android/importAndroidLaunchIcon");
const importAndroidVersionCode_1 = require("./android/importAndroidVersionCode");
const importAndroidVersionName_1 = require("./android/importAndroidVersionName");
const importIosAssets_1 = require("./ios/importIosAssets");
const importIosBundleId_1 = require("./ios/importIosBundleId");
const importIosBuildProperties_1 = require("./ios/importIosBuildProperties");
const importIosDisplayName_1 = require("./ios/importIosDisplayName");
const importIosMarketingVersion_1 = require("./ios/importIosMarketingVersion");
const importIosProjectVersion_1 = require("./ios/importIosProjectVersion");
const importGitFolder_1 = require("./other/importGitFolder");
const importIntegrateConfig_1 = require("./other/importIntegrateConfig");
const importIntegrateLockJson_1 = require("./other/importIntegrateLockJson");
const importPackageJson_1 = require("./other/importPackageJson");
const importUpgradeFolder_1 = require("./other/importUpgradeFolder");
async function importFromOldProject(oldProjectPath) {
const importedData = [
(0, importPackageJson_1.importPackageJson)(oldProjectPath),
(0, importIntegrateLockJson_1.importIntegrateLockJson)(oldProjectPath),
(0, importIntegrateConfig_1.importIntegrateConfig)(oldProjectPath),
(0, importUpgradeFolder_1.importUpgradeFolder)(oldProjectPath),
(0, importAndroidDisplayName_1.importAndroidDisplayName)(oldProjectPath),
(0, importAndroidAppId_1.importAndroidAppId)(oldProjectPath),
(0, importAndroidLaunchIcon_1.importAndroidLaunchIcon)(oldProjectPath),
(0, importAndroidVersionCode_1.importAndroidVersionCode)(oldProjectPath),
(0, importAndroidVersionName_1.importAndroidVersionName)(oldProjectPath),
(0, importIosBundleId_1.importIosBundleId)(oldProjectPath),
(0, importIosDisplayName_1.importIosDisplayName)(oldProjectPath),
(0, importIosProjectVersion_1.importIosProjectVersion)(oldProjectPath),
(0, importIosMarketingVersion_1.importIosMarketingVersion)(oldProjectPath),
(0, importIosBuildProperties_1.importIosBuildProperties)(oldProjectPath),
(0, importIosAssets_1.importIosAssets)(oldProjectPath),
(0, importGitFolder_1.importGitFolder)(oldProjectPath),
].filter(d => d != null);
(0, prompter_1.logMessage)('importing following project data:\n\n' +
importedData.map(d => `➤ ${d.title}: ${picocolors_1.default.green(d.value)}`).join('\n'));
const isManual = options_1.options.get().manual;
if (isManual) {
const confirmed = await (0, prompter_1.confirm)('Would you like to proceed?', {
initialValue: true,
positive: 'yes',
negative: 'no, just re-integrate',
});
if (!confirmed) {
(0, prompter_1.logMessageGray)('skipping import from old project');
return false;
}
}
for (const d of importedData) {
(0, prompter_1.logInfo)(picocolors_1.default.bold(picocolors_1.default.inverse(picocolors_1.default.cyan(' import '))) +
picocolors_1.default.bold(picocolors_1.default.cyan(` ${d.title} `)));
await d.apply().catch((e) => {
(0, prompter_1.logWarning)(e.message);
});
}
return true;
}