From 7dc3b30c66d5ca3200f043abaa7e9ea439bb89b3 Mon Sep 17 00:00:00 2001 From: John Mendelewski Date: Mon, 6 Nov 2023 12:23:26 -0500 Subject: [PATCH] Add validateProjectConfig to project dev command Also reworks the error message for srcOutsideProjectDir to be more informative and actionable --- packages/cli/commands/project/dev.js | 3 +++ packages/cli/lang/en.lyaml | 2 +- packages/cli/lib/projects.js | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/cli/commands/project/dev.js b/packages/cli/commands/project/dev.js index ff638939d..3d2ebb3a0 100644 --- a/packages/cli/commands/project/dev.js +++ b/packages/cli/commands/project/dev.js @@ -25,6 +25,7 @@ const { handleProjectUpload, pollProjectBuildAndDeploy, showPlatformVersionWarning, + validateProjectConfig, } = require('../../lib/projects'); const { EXIT_CODES } = require('../../lib/enums/exitCodes'); const { @@ -87,6 +88,8 @@ exports.handler = async options => { process.exit(EXIT_CODES.ERROR); } + validateProjectConfig(projectConfig, projectDir); + const accounts = getConfigAccounts(); let targetAccountId = options.account ? accountId : null; let createNewSandbox = false; diff --git a/packages/cli/lang/en.lyaml b/packages/cli/lang/en.lyaml index e8d7f3262..9606e7e96 100644 --- a/packages/cli/lang/en.lyaml +++ b/packages/cli/lang/en.lyaml @@ -918,7 +918,7 @@ en: fileChangeError: "Failed to notify local dev server of file change: {{ message }}" projects: config: - srcOutsideProjectDir: "Project source directory '{{ srcDir }}' should be contained within '{{ projectDir }}'" + srcOutsideProjectDir: "Invalid line in {{ projectConfig}}: {{#bold}}srcDir: \"{{ srcDir }}\"{{/bold}}\n\t`srcDir` should be a relative path to a directory within {{ projectDir }}, such as \".\" or \"./src\"" uploadProjectFiles: add: "Uploading {{#bold}}{{ projectName }}{{/bold}} project files to {{ accountIdentifier }}" fail: "Failed to upload {{#bold}}{{ projectName }}{{/bold}} project files to {{ accountIdentifier }}" diff --git a/packages/cli/lib/projects.js b/packages/cli/lib/projects.js index a850c5c88..9539fd49e 100644 --- a/packages/cli/lib/projects.js +++ b/packages/cli/lib/projects.js @@ -171,10 +171,15 @@ const validateProjectConfig = (projectConfig, projectDir) => { const resolvedPath = path.resolve(projectDir, projectConfig.srcDir); if (!resolvedPath.startsWith(projectDir)) { + const projectConfigFile = path.relative( + '.', + path.join(projectDir, PROJECT_CONFIG_FILE) + ); logger.error( i18n(`${i18nKey}.config.srcOutsideProjectDir`, { srcDir: projectConfig.srcDir, projectDir, + projectConfig: projectConfigFile, }) ); return process.exit(EXIT_CODES.ERROR);