@rnv/engine-core
Version:
ReNative Engine Core
221 lines • 13 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var core_1 = require("@rnv/core");
var common_1 = require("../crypto/common");
var taskHelpers_1 = require("../../taskHelpers");
var sdk_utils_1 = require("@rnv/sdk-utils");
var checkIsRenativeProject = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var c, paths;
return tslib_1.__generator(this, function (_a) {
c = (0, core_1.getContext)();
paths = c.paths;
if (!paths.project.configExists) {
return [2 /*return*/, Promise.reject("This directory is not ReNative project. Project config ".concat((0, core_1.chalk)().bold.white(paths.project.config), " is missing!. You can create new project with ").concat((0, core_1.chalk)().bold.white('rnv new')))];
}
return [2 /*return*/, true];
});
}); };
var configurePlatformBuilds = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var c, paths;
return tslib_1.__generator(this, function (_a) {
c = (0, core_1.getContext)();
paths = c.paths;
if (paths.project.builds.dir && !(0, core_1.fsExistsSync)(paths.project.builds.dir)) {
(0, core_1.logInfo)("Creating folder ".concat(paths.project.builds.dir, " ...DONE"));
(0, core_1.fsMkdirSync)(paths.project.builds.dir);
}
return [2 /*return*/];
});
}); };
var checkProjectPathSpaces = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var c, projectDir, hasSpaces, warnMessage, confirm;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
c = (0, core_1.getContext)();
projectDir = c.paths.project.dir;
hasSpaces = /\s/.test(projectDir);
if (!hasSpaces)
return [2 /*return*/, true];
warnMessage = "The project path ".concat((0, core_1.chalk)().bold.grey(projectDir), " contains spaces, which might cause issues with React Native and other tools. For more details, please visit: https://github.com/facebook/react-native/issues/34743.");
return [4 /*yield*/, (0, core_1.inquirerPrompt)({
type: 'confirm',
name: 'confirm',
message: "".concat(warnMessage, " Do you want to proceed? (yes/no)"),
})];
case 1:
confirm = (_a.sent()).confirm;
if (!confirm) {
(0, core_1.logWarning)(warnMessage, { skipSanitizePaths: true });
return [2 /*return*/, Promise.reject("Cancelled by user.")];
}
(0, core_1.logWarning)(warnMessage, { skipSanitizePaths: true });
return [2 /*return*/];
}
});
}); };
exports.default = (0, core_1.createTask)({
description: 'Configure current project',
fn: function (_a) {
var ctx = _a.ctx, taskName = _a.taskName, originTaskName = _a.originTaskName, parentTaskName = _a.parentTaskName;
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var runtime, program, taskInstance;
var _b;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
runtime = ctx.runtime, program = ctx.program;
// if (!paths.project.configExists) {
// return Promise.reject(`${RnvTaskName.projectConfigure} not supported outside of renative project`);
// }
return [4 /*yield*/, checkProjectPathSpaces()];
case 1:
// if (!paths.project.configExists) {
// return Promise.reject(`${RnvTaskName.projectConfigure} not supported outside of renative project`);
// }
_c.sent();
return [4 /*yield*/, configurePlatformBuilds()];
case 2:
_c.sent();
return [4 /*yield*/, (0, core_1.checkAndMigrateProject)()];
case 3:
_c.sent();
return [4 /*yield*/, (0, core_1.updateRenativeConfigs)()];
case 4:
_c.sent();
return [4 /*yield*/, checkIsRenativeProject()];
case 5:
_c.sent();
return [4 /*yield*/, (0, core_1.generateLocalJsonSchemas)()];
case 6:
_c.sent();
return [4 /*yield*/, (0, core_1.executeTask)({ taskName: core_1.RnvTaskName.workspaceConfigure, parentTaskName: taskName, originTaskName: originTaskName })];
case 7:
_c.sent();
if (!(program.opts().only && !!parentTaskName)) return [3 /*break*/, 11];
return [4 /*yield*/, (0, core_1.configureRuntimeDefaults)()];
case 8:
_c.sent();
return [4 /*yield*/, (0, core_1.executeTask)({ taskName: core_1.RnvTaskName.appConfigure, parentTaskName: taskName, originTaskName: originTaskName })];
case 9:
_c.sent();
return [4 /*yield*/, (0, core_1.generatePlatformAssetsRuntimeConfig)()];
case 10:
_c.sent();
return [2 /*return*/, true];
case 11: return [4 /*yield*/, (0, taskHelpers_1.checkAndInstallIfRequired)()];
case 12:
_c.sent();
if (!(originTaskName !== core_1.RnvTaskName.cryptoDecrypt)) return [3 /*break*/, 14];
//If we explicitly running rnv crypto decrypt there is no need to check crypto
return [4 /*yield*/, (0, common_1.checkCrypto)(parentTaskName, originTaskName)];
case 13:
//If we explicitly running rnv crypto decrypt there is no need to check crypto
_c.sent();
_c.label = 14;
case 14: return [4 /*yield*/, (0, core_1.configureRuntimeDefaults)()];
case 15:
_c.sent();
if (!(originTaskName !== core_1.RnvTaskName.templateApply)) return [3 /*break*/, 39];
if (!((runtime.requiresBootstrap || !(0, core_1.isTemplateInstalled)()) && !((_b = ctx.buildConfig) === null || _b === void 0 ? void 0 : _b.isTemplate))) return [3 /*break*/, 18];
return [4 /*yield*/, (0, core_1.applyTemplate)()];
case 16:
_c.sent();
// We'll have to install the template first and reset current engine
(0, core_1.logInfo)('Your template has been bootstraped. Command reset is required. RESTRATING...DONE');
return [4 /*yield*/, (0, core_1.findSuitableTask)()];
case 17:
taskInstance = _c.sent();
runtime.requiresBootstrap = false;
if (taskInstance === null || taskInstance === void 0 ? void 0 : taskInstance.task) {
return [2 /*return*/, (0, core_1.initializeTask)(taskInstance)];
}
_c.label = 18;
case 18: return [4 /*yield*/, (0, core_1.applyTemplate)()];
case 19:
_c.sent();
// We need to ensure appConfigs are populated from template before proceeding further
// await configureTemplateFiles(); // NOTE: We only do this during bootstrap once
return [4 /*yield*/, (0, core_1.configureRuntimeDefaults)()];
case 20:
// We need to ensure appConfigs are populated from template before proceeding further
// await configureTemplateFiles(); // NOTE: We only do this during bootstrap once
_c.sent();
return [4 /*yield*/, (0, taskHelpers_1.checkAndInstallIfRequired)()];
case 21:
_c.sent();
return [4 /*yield*/, (0, core_1.executeTask)({ taskName: core_1.RnvTaskName.appConfigure, parentTaskName: taskName, originTaskName: originTaskName })];
case 22:
_c.sent();
// IMPORTANT: configurePlugins must run after appConfig present to ensure merge of all configs/plugins
return [4 /*yield*/, (0, core_1.versionCheck)(ctx)];
case 23:
// IMPORTANT: configurePlugins must run after appConfig present to ensure merge of all configs/plugins
_c.sent();
return [4 /*yield*/, (0, core_1.configureEngines)(ctx)];
case 24:
_c.sent();
return [4 /*yield*/, (0, core_1.resolvePluginDependants)()];
case 25:
_c.sent();
return [4 /*yield*/, (0, core_1.configurePlugins)()];
case 26:
_c.sent();
return [4 /*yield*/, (0, core_1.configureRuntimeDefaults)()];
case 27:
_c.sent();
if (!!runtime.disableReset) return [3 /*break*/, 31];
if (!program.opts().resetHard) return [3 /*break*/, 29];
(0, core_1.logInfo)("You passed ".concat((0, core_1.chalk)().bold.white('-R, --resetHard'), " argument. \"").concat((0, core_1.chalk)().bold.white('./platformAssets'), "\" will be cleaned up first"));
return [4 /*yield*/, (0, core_1.cleanPlaformAssets)()];
case 28:
_c.sent();
return [3 /*break*/, 31];
case 29:
if (!program.opts().resetAssets) return [3 /*break*/, 31];
(0, core_1.logInfo)("You passed ".concat((0, core_1.chalk)().bold.white('-a, --resetAssets'), " argument. \"").concat((0, core_1.chalk)().bold.white('./platformAssets'), "\" will be cleaned up first"));
return [4 /*yield*/, (0, core_1.cleanPlaformAssets)()];
case 30:
_c.sent();
_c.label = 31;
case 31: return [4 /*yield*/, (0, core_1.copyRuntimeAssets)()];
case 32:
_c.sent();
if (!!ctx.buildConfig.platforms) return [3 /*break*/, 34];
return [4 /*yield*/, (0, core_1.updateRenativeConfigs)()];
case 33:
_c.sent();
_c.label = 34;
case 34: return [4 /*yield*/, (0, core_1.generatePlatformAssetsRuntimeConfig)()];
case 35:
_c.sent();
return [4 /*yield*/, (0, core_1.overrideTemplatePlugins)()];
case 36:
_c.sent();
// NOTE: this is needed to ensure missing rnv plugin sub-deps are caught
return [4 /*yield*/, (0, core_1.checkForPluginDependencies)(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, (0, taskHelpers_1.installPackageDependenciesAndPlugins)()];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); })];
case 37:
// NOTE: this is needed to ensure missing rnv plugin sub-deps are caught
_c.sent();
return [4 /*yield*/, (0, sdk_utils_1.configureFonts)()];
case 38:
_c.sent();
_c.label = 39;
case 39: return [2 /*return*/, true];
}
});
});
},
task: core_1.RnvTaskName.projectConfigure,
});
//# sourceMappingURL=taskProjectConfigure.js.map