protoc-gen-typescript-http
Generates Typescript types and service clients from protobuf definitions
annotated with
http rules.
The generated types follow the
canonical JSON encoding.
Experimental: This library is under active development and breaking changes
to config files, APIs and generated code are expected between releases.
Using the plugin
For examples of correctly annotated protobuf defintions and the generated code,
look at examples.
Install the plugin
go get go.einride.tech/protoc-gen-typescript-http
Or download a prebuilt binary from releases.
Invocation
protoc
--typescript-http_out [OUTPUT DIR] \
[.proto files ...]
The generated clients can be used with any HTTP client that returns a Promise
containing JSON data.
const rootUrl = "...";
type Request = {
path: string,
method: string,
body: string | null
}
function fetchRequestHandler({path, method, body}: Request) {
return fetch(rootUrl + path, {method, body}).then(response => response.json())
}
export function siteClient() {
return createShipperServiceClient(fetchRequestHandler);
}