From 9bd0d29c9f473b06aeb48688045060f26b62dfc8 Mon Sep 17 00:00:00 2001 From: Akash Shaw Date: Sat, 4 Nov 2023 21:06:37 +0530 Subject: [PATCH] Adding a enum for validation --- src/commands/validate.ts | 6 +++--- src/parser.ts | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/commands/validate.ts b/src/commands/validate.ts index 24cd74ac061..66ba13a3bbf 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -1,7 +1,7 @@ import { Flags } from '@oclif/core'; import Command from '../base'; -import { validate, validationFlags } from '../parser'; +import { ValidationStatus, validate, validationFlags } from '../parser'; import { load } from '../models/SpecificationFile'; import { specWatcher } from '../globals'; import { watchFlag } from '../flags'; @@ -23,14 +23,14 @@ export default class Validate extends Command { const { args, flags } = await this.parse(Validate); //NOSONAR const filePath = args['spec-file']; const watchMode = flags.watch; - + const specFile = await load(filePath); if (watchMode) { specWatcher({ spec: specFile, handler: this, handlerName: 'validate' }); } await validate(this, specFile, flags); - if(await validate(this, specFile, flags) == 'invalid') { + if(await validate(this, specFile, flags) == ValidationStatus.Invalid) { this.exit(1); } this.exit(0); diff --git a/src/parser.ts b/src/parser.ts index 72a89bbf9f2..5a525d3b517 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -33,6 +33,11 @@ export interface ValidationFlagsOptions { logDiagnostics?: boolean; } +export enum ValidationStatus { + Invalid = "invalid", + Valid = "valid", +} + export function validationFlags({ logDiagnostics = true }: ValidationFlagsOptions = {}) { return { 'log-diagnostics': Flags.boolean({ @@ -74,7 +79,7 @@ function logDiagnostics(diagnostics: Diagnostic[], command: Command, specFile: S const logDiagnostics = options['log-diagnostics']; const failSeverity = options['fail-severity'] ?? 'error'; const diagnosticsFormat = options['diagnostics-format'] ?? 'stylish'; - + const sourceString = specFile.toSourceString(); if (diagnostics.length) { if (hasFailSeverity(diagnostics, failSeverity)) { @@ -82,7 +87,7 @@ function logDiagnostics(diagnostics: Diagnostic[], command: Command, specFile: S command.logToStderr(`\n${sourceString} and/or referenced documents have governance issues.`); command.logToStderr(formatOutput(diagnostics, diagnosticsFormat, failSeverity)); } - return 'invalid'; + return ValidationStatus.Invalid; } if (logDiagnostics) { @@ -93,7 +98,7 @@ function logDiagnostics(diagnostics: Diagnostic[], command: Command, specFile: S command.log(`\n${sourceString} is valid! ${sourceString} and referenced documents don't have governance issues.`); } - return 'valid'; + return ValidationStatus.Valid; } export function formatOutput(diagnostics: Diagnostic[], format: `${OutputFormat}`, failSeverity: SeveritytKind) {