0.4.0 • Published 14 days ago

protoc-gen-pothos v0.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
14 days ago

protoc-gen-pothos

Build GraphQL schema from Protobuf and Pothos GraphQL.

Supported Protocol Buffers Implementations

Configuration with Buf

# proto/buf.yaml
version: v1
deps:
  - buf.build/proto-graphql/proto-graphql

with ts-proto

# proto/buf.gen.yaml
version: v1
plugins:
  - name: ts
    out: ../src/__generated__/proto
    strategy: all
    path: ../node_modules/.bin/protoc-gen-ts_proto
    opt:
      - esModuleInterop=true     # required
      - unrecognizedEnum=false   # required
      - outputTypeRegistry=true  # required
    strategy: all
  - name: pothos
    path: ../node_modules/.bin/protoc-gen-pothos
    out: ../src/__generated__/pothos
    opt:
      - pothos_builder_path=../../builder
      - import_prefix=../proto

Supported options

  • import_prefix (string, required)
    • path to out dir of ts-proto
  • pothos_builder_path (string, required)
    • path to file that exports pothos builder
  • emit_imported_files (bool, optional)
    • if true, protoc-gen-pothos also emits types defined in imported .proto file.
  • scalar (string, optional)
    • add scalar mapping
    • default:
      • Protobuf's 64-bit integer types to String
      • Protobuf's bytes type to Bytes
      • google.protobuf.Timestamp to DateTime
    • e.g.
      • Map google.type.Date to Date
        • opt:
            - scalar=google.type.Date=Date
          opt:
      • Map Protobuf's 64-bit integer types to BigInt
        • opt:
            - scalar=int64=BigInt
            - scalar=uint64=BigInt
            - scalar=sint64=BigInt
            - scalar=fixed64=BigInt
            - scalar=sfixed64=BigInt
            - scalar=google.protobuf.Int64Value=BigInt
            - scalar=google.protobuf.UInt64Value=BigInt
            - scalar=google.protobuf.SInt64Value=BigInt
            - scalar=google.protobuf.Fixed64Value=BigInt
            - scalar=google.protobuf.SFixed64Value=BigInt
  • ignore_non_message_oneof_fields (bool, optional)

Author