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`,
})
}