Skip to content

Latest commit

 

History

History
75 lines (45 loc) · 3.17 KB

CHANGELOG.md

File metadata and controls

75 lines (45 loc) · 3.17 KB

Changelog

Unreleased

Breaking Changes

  • With the integration to the go/packages library, -pkg option now requires a Go-style package path instead of a path to the directory. If you want to use a relative path, you need to prefix it with ./ or ../.

Added

  • Now supports interface embedding
  • -model-pkg option to specify the package containing the model struct. Without specifying this option, it will fall back to the same value as -pkg option.
  • -dest-pkg option to specify the package path to write the generated code to. Without specifying this option, it will fall back to the same value as -pkg option.

Changed

  • The constructor of the generated repository implementation now returns a pointer to the generated repository implementation instead of the repository interface.
  • -pkg option now requires a Go-style package path instead of a path to the directory. Without specifying a dot (./ or ../) at the beginning of the path, Go will assume the absolute package path.

v0.3.1 - 2024-01-14

Changed

  • Make find many operations return empty slice instead of nil to provide consistency when further encoded to JSON.

v0.3.0 - 2023-10-31

Breaking Changes

  • -src option is now removed, replacing with -pkg option. Repogen now supports when model struct and repository interface is placed in separate files in the same package. Instead of specifying a single Go file to scan the model struct and repository interface, you can now specify a path to the package containing with -pkg. If the -pkg option is not specified, it will default to the current directory.
  • The keyword One after Find is not allowed anymore. If you have FindOne declared anywhere, replace them with Find.

Added

  • Package scanning: Instead of specifying a single Go file to scan the model struct and repository interface using -src option, you can now specify a path to the package containing the model struct and repository interface using -pkg option.
  • Find many operations with limits: Write TopN keyword after Find to allow finding with limit N: e.g. FindTop5AllOrderByAge.
  • Query comparators: Exists and NotExists

Removed

  • -src option is removed, in favor of -pkg option.

Fixed

  • Fixed decoding error when the struct tag has space characters

v0.2.1 - 2021-11-27

Fixed

  • Fixed error when any method parameter is assigned with map type

v0.2.0 - 2021-06-05

Added

  • Query operators: NotIn, True and False
  • Update the whole model by not specifying queries: e.g. UpdateByID
  • Sorting in find operations (both find one and find many)
  • Deeply referencing to struct fields: e.g. ContactEmail = contact.email
  • Update operators: Push and Inc

Improved

  • Improved error message from generation to help investigate repository interface errors

v0.1.0 - 2021-02-16

Initial release

  • Supports create, read, update, delete and count functionality
  • Supports single-entity and many-entity operations
  • Supports AND and OR query
  • Supports many comparators (equal, less than, less than or equal, greater than, greater than or equal, not equal, between, in)
  • Validate method signature depending on method operations