UNPKG

@rnv/engine-core

Version:
221 lines 13 kB
"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