directive detects missing directives
input UserCreateInput {
    name: String! # want "name has no constraint directive"
}directive provides a typical main function and you can install with go install command.
$ go install github.com/gqlgo/directive/cmd/directive@latestThe directive command has a flag, config which will be parsed and analyzed by the Analyzer.
- sample1: constraint directive exists on the field
 
---
analyzer:
  - analyzer_name: "constraint directive"
    description: "constraint directive exists on the field"
    field:
      - description: "constraint directive exists on the input field"
        directive: constraint
        kind: ['INPUT_OBJECT']
        field_parent_type: ['.+']
        field_type: ['^\[?Int\]?$', '^\[?Float\]?$', '^\[?String\]?$', '^\[?Decimal\]?$', '^\[?URL\]?$']
        exclude_field: ['^first$', '^last$', '^after$', '^before$']
        report_format: "%s has no constraint directive"
    argument:
      - description: "constraint directive exists on the object field argument"
        directive: constraint
        kind: ['OBJECT']
        argument_type: ['^\[?Int\]?$', '^\[?Float\]?$', '^\[?String\]?$', '^\[?Decimal\]?$', '^\[?URL\]?$']
        exclude_argument: ['^first$', '^last$', '^after$', '^before$']
        report_format: "argument %s has no constraint directive"- sample2: permission directive exists on the definition
 
---
analyzer:
  - analyzer_name: "permission directive"
    description: "permission directive exists on the definition"
    definition:
      - description: "permission directive exists on the definition"
        directive: permission
        kind: ['OBJECT', 'INTERFACE']
        definition: ['.+']
        exclude_definition: [ '^Query$', '^Mutation$', '^Subscription$', '^PageInfo$']
        report_format: "%s has no permission directive"
    field:
      - description: "permission directive exists on the mutation"
        directive: permission
        kind: ['OBJECT']
        field_parent_type:  ['^Mutation$']
        field_type: ['.+']
        exclude_field:
        report_format: "%s has no permission directive"
The directive command has a flag, schema which will be parsed and analyzed by directive's Analyzer.
$ directive -schema="server/graphql/schema/**/*.graphql"The default value of schema is "schema/*/**.graphql".