export function convertLintMsgToAutoRestMsg()

in packages/azure-openapi-validator/autorest/src/plugin-common.ts [5:37]


export function convertLintMsgToAutoRestMsg(message: LintResultMessage): Message {
  // try to extract provider namespace and resource type
  const path = message.jsonpath?.[1] === "paths" && message.jsonpath[2]
  const pathComponents = typeof path === "string" && path.split("/")
  const pathComponentsProviderIndex = pathComponents && pathComponents.indexOf("providers")
  const pathComponentsTail =
    pathComponentsProviderIndex && pathComponentsProviderIndex >= 0 && pathComponents.slice(pathComponentsProviderIndex + 1)
  const pathComponentProviderNamespace = pathComponentsTail && pathComponentsTail[0]
  const pathComponentResourceType = pathComponentsTail && pathComponentsTail[1]
  const msg = {
    Channel: message.type,
    Text: message.message,
    Key: [message.code],
    Source: [
      {
        document: message?.sources?.[0] || "",
        Position: {
          path: message.jsonpath,
          //...message.range?.start as Position
        },
      },
    ],
    Details: {
      jsonpath: message.jsonpath,
      validationCategory: message.category,
      providerNamespace: pathComponentProviderNamespace,
      resourceType: pathComponentResourceType,
      rpcGuidelineCode: message.rpcGuidelineCode,
      range: message.range,
    },
  }
  return msg
}