in packages/azure-openapi-validator/autorest/src/spectral-plugin-utils.ts [132:164]
range: convertRange(result.range),
rpcGuidelineCode: rulesetPayload.rules[result.code]?.rpcGuidelineCode ?? "",
} as LintResultMessage
}
// Newest source of spectral.run as of 2/23/2024
// https://github.com/stoplightio/spectral/blob/ffa6ebeabbaa0441c8c967ef4e11a7a0a8c66aac/packages/core/src/spectral.ts#L79
// Note: version used in this code is likely older than newest.
const results: ISpectralDiagnostic[] = await spectral.run(openApiSpecYml)
mergedResults.push(
...results.map((result: ISpectralDiagnostic) => formatAsLintResultMessage(result, createFileOrFolderUri(openApiSpecFilePath)))
)
for (const message of mergedResults) {
sendMessage(convertLintMsgToAutoRestMsg(message))
}
return mergedResults
}
export function catchSpectralRunErrors(file: string, error: any, initiator: IAutoRestPluginInitiator): void {
// Here 'error' may be AggregateError:
// Spectral (from "@stoplight/spectral-core") may throw https://www.npmjs.com/package/es-aggregate-error
// If so, we print out all the constituent errors.
// For additional context, see: https://github.com/Azure/azure-sdk-tools/issues/6856
// Initialize an array to collect error messages
const errorMessages: string[] = [error]
// Check if "error" contains the "errors" property
if (error && error.errors && Array.isArray(error.errors)) {
error.errors.forEach((error: any, index: number) => {