All Versions
9
Latest Version
Avg Release Cycle
47 days
Latest Release
300 days ago

Changelog History

  • v1.3.2 Changes

    September 29, 2020

    ๐ŸŽ Performance:

    • โšก๏ธ Optimized including other schemas in a schema, which previously caused a huge slowdown, and possibly even out-of-memory errors.
  • v1.3.1 Changes

    September 25, 2020

    ๐Ÿ› Bug fixes:

    • โšก๏ธ Update extra-source-files with files needed for testing
  • v1.3.0 Changes

    September 25, 2020

    ๐Ÿ’ฅ Breaking changes:

    • โ™ป๏ธ Refactored types to be correct by construction. Namely, the schema parameter in Object schema now has kind Schema instead of SchemaType, which prevents the possibility of a non-object schema stored in an Object. This means that any schemas previously annotated with the SchemaType kind should now be annotated as Schema.
    • ๐Ÿšš Instead of using IsSchemaObject is obviated because of this change, so it's been removed. You may use the new IsSchema instead, if you need it.
    • ๐Ÿšš SchemaResult has been removed from the export list of Data.Aeson.Schema. You probably won't need this in typical usage of this library, but if you need it, you can always get it from Data.Aeson.Schema.Internal.

    ๐Ÿ†• New features:

    • โž• Add support for unwrapping into included schemas
    • โž• Add toMap
    • Re-export showSchema in Data.Aeson.Schema

    ๐Ÿ› Bug fixes:

    • Avoid requiring TypeApplications when using get quasiquoter (#16)
    • ๐Ÿ‘ Allow optional quotes around keys, both in getter-expressions and in schema definitions
    • ๐Ÿ‘ Allow // at the beginning of phantom keys (were previously parsed as comments)

    ๐ŸŽ Performance:

    • ๐ŸŽ We've added benchmarks! To view performance metrics, you can clone the repo and run stack bench. You may also view the benchmark statistics in CI, but due to Circle CI's memory limitations, we're forced to run them with --fast, so it'll be a factor slower than it would actually be at runtime.
    • ๐Ÿ›  Fixed the Show instance from being O(n^2) to O(n), where n is the depth of the object.
    • ๐ŸŽ In order to fix some bugs and implement new features, the schema quasiquoter took a performance hit. The biggest slowdown occurs if you're including other schemas like:

      {
          user: #UserSchema
      }
      

      If this causes your build to be noticeably slower, please open an issue. Thanks!

    Miscellaneous changes:

    • The Show instance for objects added some whitespace, from {"foo": 0} to { "foo": 0 }
  • v1.2.0 Changes

    June 03, 2020

    ๐Ÿ†• New features:

    • โž• Add support for phantom keys
    • โž• Add support for Try schemas
  • v1.1.0 Changes

    March 28, 2020

    ๐Ÿ†• New features: * Added support for unions * Added ToJSON instance for enums generated with mkEnum

  • v1.0.3 Changes

    September 27, 2019

    ๐Ÿ‘Œ Support GHC 8.8

  • v1.0.2 Changes

    September 27, 2019

    ๐Ÿš€ Bundle test data files in release tarball

  • v1.0.1 Changes

    September 19, 2019

    โž• Add support with first-class-families-0.6.0.0

  • v1.0.0 Changes

    September 19, 2019

    ๐ŸŽ‰ Initial release:

    • Defining JSON schemas with the schema quasiquoter
    • Extract JSON data using the get quasiquoter
    • Extracting intermediate schemas with the unwrap quasiquoter
    • Include mkGetter helper function for generating corresponding get and
      unwrap expressions.