Skip to content

MadsRC/constructor

Repository files navigation

Constructor

Constructor is a small utility CLI tool that generates a constructor for a new struct in Go. The constructor that is created is heavily opinionated and designed to work with the functional options pattern to allow for a flexible and expressive API.

As an added bonus, constructor is also able to generate tests for the constructor it creates, with complete coverage.

Installation

To install Constructor, run the following command:

go get -u github.com/MadsRC/constructor

Usage

To generate a constructor for a new struct, run the following command:

constructor --name MyStruct --package mypackage

This will print the constructor to the console. If you want to write the constructor to a file, you can use the --output flag:

constructor --name MyStruct --package mypackage --output mystruct_constructor.go

To generate tests for the constructor, use the --test flag:

constructor --name MyStruct --package mypackage --test

Build

This project uses mise to manage dev tools, environments and tasks. To build the project, run the following command:

mise run build

This will result in a binary being created in the dist/ directory.

Alternatively, you can create a development/debug build by running:

mise run build --dev

This will create a binary with debug information.

Testing

Acceptance tests

The acceptance test suite is written as a separate GoLang module in the tests/acceptance directory. To run the acceptance tests, you need to have a constructor binary built and available.

To run the acceptance tests, run the following command:

mise run test:acceptance dist/constructor

The arguments passed here is the path to the constructor binary.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published