export function printRuleNames()

in packages/azure-openapi-validator/autorest/src/spectral-plugin-utils.ts [53:76]


export function printRuleNames(
  initiator: IAutoRestPluginInitiator,
  ruleset: Ruleset,
  resolvedOpenapiType: OpenApiTypes,
  description: string
) {
  const ruleNames: string[] = Object.keys(ruleset.rules)
    // Case-insensitive sort.
    // Source: https://stackoverflow.com/a/60922998/986533
    .sort(Intl.Collator().compare)

  initiator.Message({
    Channel: "information",
    Text: `Loaded ${ruleNames.length} spectral rules, for OpenAPI type '${OpenApiTypes[resolvedOpenapiType]}' for ${description}:`,
  })
  for (const ruleName of ruleNames) {
    const severity: DiagnosticSeverity = ruleset.rules[ruleName].severity
    const sevStr: string = Number(severity) == -1 ? "DISABLED" : DiagnosticSeverity[severity]
    initiator.Message({
      Channel: "information",
      Text: (sevStr == "DISABLED" ? "DISABLED " : "").concat(`Spectral rule for ${description}, severity '${sevStr}': '${ruleName}'`),
    })
  }
}