diff --git a/config/checkers.yaml b/config/checkers.yaml index ec4dd08..6c0b502 100644 --- a/config/checkers.yaml +++ b/config/checkers.yaml @@ -28,3 +28,6 @@ parameters: minimum_allowed_shop_version_checker_doc_url: https://docs.spryker.com/docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.html minimum_allowed_shop_version_checker_version: '202204.0' minimum_allowed_shop_version_checker_file: '%evaluator_dir%/data/minimum-allowed-package-versions.json' + + # Npm checker + npm_checker_doc_url: https://docs.spryker.com/docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/npm-checker.html diff --git a/config/services.yaml b/config/services.yaml index 4984b46..18fe585 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -112,6 +112,10 @@ services: arguments: $checkerDocUrl: '%single_plugin_argument_checker_doc_url%' + SprykerSdk\Evaluator\Checker\NpmChecker\NpmChecker: + arguments: + $checkerDocUrl: '%npm_checker_doc_url%' + # Third-party PhpParser\ParserFactory: ~ Symfony\Component\Finder\Finder: ~ diff --git a/src/Checker/NpmChecker/NpmAuditExecutor.php b/src/Checker/NpmChecker/NpmAuditExecutor.php index fd7ddd9..17d7abb 100644 --- a/src/Checker/NpmChecker/NpmAuditExecutor.php +++ b/src/Checker/NpmChecker/NpmAuditExecutor.php @@ -76,11 +76,11 @@ public function executeNpmAudit(): array return []; } - $stdOut = $process->getOutput(); - $stdErr = $process->getErrorOutput(); + $stdOut = trim($process->getOutput()); + $stdErr = trim($process->getErrorOutput()); - if ($stdErr) { - throw new NpmExecutorException(sprintf('Out: %s Err: %s', $stdOut, $stdErr)); + if ($stdErr && !$stdOut) { + throw new NpmExecutorException($stdErr); } try { @@ -149,7 +149,7 @@ protected function processViolationSource(array $violationSource, string $severi $message = $violationSource[static::TITLE_KEY]; if (isset($violationSource[static::URL_KEY])) { - $message .= PHP_EOL . $violationSource[static::TITLE_KEY]; + $message .= PHP_EOL . $violationSource[static::URL_KEY]; } return new ViolationDto(sprintf('[%s] %s', $severity, $message), $target); diff --git a/src/Checker/NpmChecker/NpmChecker.php b/src/Checker/NpmChecker/NpmChecker.php index 93c6f01..c9a3737 100644 --- a/src/Checker/NpmChecker/NpmChecker.php +++ b/src/Checker/NpmChecker/NpmChecker.php @@ -66,7 +66,7 @@ public function check(CheckerInputDataDto $inputData): CheckerResponseDto try { $violations = $this->npmAuditExecutor->executeNpmAudit(); } catch (NpmExecutorException $e) { - $violations = [new ViolationDto(sprintf('Internal error: %s', $e->getMessage()))]; + $violations = [new ViolationDto(sprintf('Npm issue: %s', $e->getMessage()))]; } return new CheckerResponseDto($violations, $this->checkerDocUrl);