export async function spectralPluginFunc()

in packages/azure-openapi-validator/autorest/src/spectral-plugin-func.ts [26:66]


export async function spectralPluginFunc(initiator: IAutoRestPluginInitiator): Promise<void> {
  initiator.Message({
    Channel: "information",
    Text: `spectralPluginFunc: Enter`,
  })

  // openApiSpecFiles is an array of 'input-file' paths originating from given AutoRest README API version tag, for example:
  // https://github.com/Azure/azure-rest-api-specs/blob/b273d97aa44a84088bab144a8bcebeb07f827238/specification/storage/resource-manager/readme.md#tag-package-2023-01
  // Example value of suffix of one entry in openApiSpecFiles:
  // specification/storage/resource-manager/Microsoft.Storage/stable/2023-01-01/storage.json
  const openApiSpecFiles: string[] = (await initiator.ListInputs()).filter((f) => !isCommonTypes(f))
  const openapiType: string = await getOpenapiTypeStr(initiator)
  const isStagingRun: boolean = await initiator.GetValue("is-staging-run")

  const resolvedOpenapiType: OpenApiTypes = getOpenapiType(openapiType)

  const {
    rulesetPayload,
    rulesetForManualSpecs,
    rulesetForTypeSpecGeneratedSpecs,
  }: {
    rulesetPayload: SpectralRulesetPayload
    rulesetForManualSpecs: Ruleset
    rulesetForTypeSpecGeneratedSpecs: Ruleset
  } = await getRulesets(initiator, resolvedOpenapiType, isStagingRun)

  for (const openApiSpecFile of openApiSpecFiles) {
    await validateOpenApiSpecFileUsingSpectral(
      initiator,
      rulesetPayload,
      rulesetForManualSpecs,
      rulesetForTypeSpecGeneratedSpecs,
      openApiSpecFile,
    )
  }

  initiator.Message({
    Channel: "information",
    Text: `spectralPluginFunc: Return`,
  })
}