UNPKG

eas-cli

Version:
51 lines (50 loc) 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCustomBuildConfigPathForJob = exports.getCustomBuildConfigPath = exports.validateCustomBuildConfigAsync = void 0; const tslib_1 = require("tslib"); const steps_1 = require("@expo/steps"); const chalk_1 = tslib_1.__importDefault(require("chalk")); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const path_1 = tslib_1.__importDefault(require("path")); async function validateCustomBuildConfigAsync({ profile, projectDir, vcsClient, }) { if (!profile.config) { return undefined; } const relativeConfigPath = getCustomBuildConfigPath(profile.config); const configPath = path_1.default.join(projectDir, relativeConfigPath); if (!(await fs_extra_1.default.pathExists(configPath))) { throw new Error(`Custom build configuration file ${chalk_1.default.bold(relativeConfigPath)} does not exist.`); } const rootDir = path_1.default.normalize(await vcsClient.getRootPathAsync()); if (await vcsClient.isFileIgnoredAsync(path_1.default.relative(rootDir, configPath))) { throw new Error(`Custom build configuration file ${chalk_1.default.bold(relativeConfigPath)} is ignored by your version control system. Remove it from the ignore list to successfully create custom build.`); } try { const config = await (0, steps_1.readAndValidateBuildConfigFromPathAsync)(configPath, { skipNamespacedFunctionsOrFunctionGroupsCheck: true, }); return { workflowName: config.build.name, }; } catch (err) { if (err instanceof steps_1.errors.BuildConfigYAMLError) { throw new Error(`Custom build configuration file ${chalk_1.default.bold(relativeConfigPath)} contains invalid YAML.\n\n${err.message}`); } else if (err instanceof steps_1.errors.BuildConfigError) { throw new Error(`Custom build configuration file ${chalk_1.default.bold(relativeConfigPath)} contains invalid configuration. Please check the docs!\n${err.message}`); } else { throw err; } } } exports.validateCustomBuildConfigAsync = validateCustomBuildConfigAsync; function getCustomBuildConfigPath(configFilename) { return path_1.default.join('.eas/build', configFilename); } exports.getCustomBuildConfigPath = getCustomBuildConfigPath; function getCustomBuildConfigPathForJob(configFilename) { return path_1.default.posix.join('.eas/build', configFilename); } exports.getCustomBuildConfigPathForJob = getCustomBuildConfigPathForJob;