function checkMetaValidity(context, exportsNode) {
  const metaProperty = getMetaPropertyFromExportsNode(exportsNode)
  if (!metaProperty) {
    return
  }

  const metaDocs = getPropertyFromObject('docs', metaProperty.value)
  if (!metaDocs) {
    return
  }

  const categories = getPropertyFromObject('categories', metaDocs.value)
  if (!categories) {
    context.report({
      node: metaDocs,
      messageId: 'missingCategories',
      fix(fixer) {
        const category = getPropertyFromObject('category', metaDocs.value)
        if (!category) {
          return null
        }
        const fixes = [fixer.replaceText(category.key, 'categories')]
        if (
          category.value &&
          category.value.type === 'Literal' &&
          typeof category.value.value === 'string'
        ) {
          // fixes.push(fixer.insertTextBefore(category.value, '['), fixer.insertTextAfter(category.value, ']'))

          if (category.value.value === 'base') {
            fixes.push(fixer.insertTextBefore(category.value, '['))
          } else {
            // for vue3 migration
            fixes.push(
              fixer.insertTextBefore(
                category.value,
                `['vue3-${category.value.value}', `
              )
            )
          }
          fixes.push(fixer.insertTextAfter(category.value, ']'))
        }
        return fixes
      }
    })
    return
  }

  if (
    categories.value &&
    categories.value.type !== 'ArrayExpression' &&
    !(categories.value.type === 'Literal' && categories.value.value == null) &&
    !(
      categories.value.type === 'Identifier' &&
      categories.value.name === 'undefined'
    )
  ) {
    context.report({
      node: categories.value,
      messageId: 'categoriesMustBeArray'
    })
  }
}
Checks the validity of the meta definition of this rule and reports any errors found.

@param {RuleContext} context The ESLint rule context.
@param {ASTNode} exportsNode ObjectExpression node that the rule exports.
@param {boolean} ruleIsFixable whether the rule is fixable or not.
@returns {void}