Build GraphQL schema from Protobuf and Pothos GraphQL.
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
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.
- if
scalar
(string
, optional)- add scalar mapping
- default:
- Protobuf's 64-bit integer types to
String
- Protobuf's bytes type to
Bytes
google.protobuf.Timestamp
toDateTime
- Protobuf's 64-bit integer types to
- e.g.
- Map
google.type.Date
toDate
-
opt:
opt: - scalar=google.type.Date=Date
-
- 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
-
- Map
ignore_non_message_oneof_fields
(bool
, optional)
- Masayuki Izumi (twitter: @izumin5210, github: @izumin5210)