File size: 692 Bytes
048b1e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { createRule, paramMessage } from '@typespec/compiler'

export const operationSummaryRule = createRule({
  name: 'operation-summary',
  severity: 'warning',
  description: 'Ensure operation summary.',
  messages: {
    default: paramMessage`The ${'type'} ${'name'} must have a summary decorator.`,
  },
  create: (context) => ({
    operation: (node) => {
      if (
        node.name &&
        !node.decorators.some((d) => d.decorator.name === '$summary')
      ) {
        context.reportDiagnostic({
          format: {
            type: node.kind,
            name: node.name,
          },
          target: node,
          messageId: 'default',
        })
      }
    },
  }),
})