Skip to content
/ template Public template

Project template for Go and TypeScript.

License

Notifications You must be signed in to change notification settings

aperturerobotics/template

Repository files navigation

Project Template

GoDoc Widget Go Report Card Widget

This is a template for Aperture Robotics projects.

See protobuf-project for a more extensive example.

Usage

Start by downloading the dependencies:

yarn

Protobuf imports use Go paths and package names:

syntax = "proto3";
package example;

// Import .proto files using Go-style import paths.
import "github.com/aperturerobotics/controllerbus/controller/controller.proto";

// GetBusInfoResponse is the response type for GetBusInfo.
message GetBusInfoResponse {
  // RunningControllers is the list of running controllers.
  repeated controller.Info running_controllers = 1;
}

To generate the protobuf files:

$ git add -A
$ yarn install
$ yarn gen

The Makefile will download the tools using Go to a bin dir.

Makefile

The available make targets are:

  • gengo: Generate protobuf files.
  • test: run go test -v ./...
  • lint: run golangci-lint on the project.
  • fix: run golangci-lint --fix on the project.
  • list: list go module dependencies
  • outdated: list outdated go module dependencies

To generate the TypeScript and Go code:

  • yarn install
  • yarn gen

Developing on MacOS

On MacOS, some homebrew packages are required for yarn gen:

brew install bash make coreutils gnu-sed findutils protobuf
brew link --overwrite protobuf

Add to your .bashrc or .zshrc:

export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH"
export PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH"

Support

Please open a GitHub issue with any questions / issues.

... or feel free to reach out on Matrix Chat or Discord.

License

MIT

About

Project template for Go and TypeScript.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published