in packages/azure-openapi-validator/autorest/src/openapi-validator-plugin-func.ts [7:67]
export async function openapiValidatorPluginFunc(initiator: IAutoRestPluginInitiator): Promise<void> {
initiator.Message({
Channel: "information",
Text: `openapiValidatorPluginFunc: Enter`,
})
const files = await (await initiator.ListInputs()).filter((f) => !isCommonTypes(f))
const openapiType: string = await getOpenapiTypeStr(initiator)
const sendMessage = (msg: LintResultMessage) => {
initiator.Message(convertLintMsgToAutoRestMsg(msg))
}
const readFile = async (fileUri: string): Promise<string> => {
if (isExample(fileUri)) {
return ""
}
let file: string | undefined = cachedFiles.get(fileUri)
if (!file) {
file = await initiator.ReadFile(fileUri)
if (!file) {
throw new Error(`Could not read file: ${fileUri} .`)
}
cachedFiles.set(fileUri, file)
}
return file
}
const defaultFileSystem = {
read: readFile,
}
initiator.Message({
Channel: "information",
Text: `openapiValidatorPluginFunc: Validating files:`,
})
for (const [index, file] of files.entries()) {
initiator.Message({
Channel: "information",
Text: `openapiValidatorPluginFunc: File ${index + 1}/${files.length}: '${file}'`,
})
}
try {
const mergedRuleset: IRuleSet = mergeRulesets(Object.values(nativeRulesets))
const resolvedOpenapiType = getOpenapiType(openapiType)
printRuleNames(initiator, mergedRuleset, resolvedOpenapiType)
await lint(files, { ruleSet: mergedRuleset, fileSystem: defaultFileSystem, openapiType: resolvedOpenapiType }, sendMessage)
} catch (e) {
initiator.Message({
Channel: "fatal",
Text: `openapiValidatorPluginFunc: Failed validating: ` + e,
})
}
initiator.Message({
Channel: "information",
Text: `openapiValidatorPluginFunc: Return`,
})
}