Skip to content

Commit

Permalink
release: version 0.7.0
Browse files Browse the repository at this point in the history
Issue #180
  • Loading branch information
Jon Rista committed Aug 2, 2021
1 parent ce65d56 commit f7da6c6
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 35 deletions.
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,39 @@
<a name="0.7.0"></a>

# [0.7.0](https://github.com/briebug/ngrx-auto-entity/compare/0.6.1...0.7.0) Beta (2021-08-02)

This release officially adds support for Angular 12 and NgRx 12! With the advent of Ivy, and its
continued progress towards replacing View Engine, supporting Angular 12 required a bit more active
work to support. Currently, the library is built with `enableIvy` set to false, which allows the
library to be built with support for View Engine versions of Angular.

Research and planning has begun on supporting Angular 13, however this will be a
more challenging task than supporting Angular 12 due to the fact that View Engine will be dropped
entirely from Ng 13, which will affect our ability to build a library that supports older versions
of Angular. We hope to have a plan in place for this scenario soon.

This release also updates some internal usage of NgRx to drop use of legacy or fully deprecated
features, such as the `@Entity` decorator.

### Internal

- **effects:** All effects have dropped use of the legacy `@Effect()` decorator, and are now using
the current and recommended `createEffect()` function. This is to ensure support with NgRx 12+.
- **actions:** Action factories have been updated with more explicit typing. Increased type strictness
that comes with Ng 12 revealed cases where types were not specified, or insufficiently specified. These
types have been strengthened to be more accurate and clear. These changes should not impact
normal use of action factories.


### Breaking Changes !!

- **library:** Support for Angular 8 has been dropped! While the library may still work with Angular
8 applications, due to changes in Angular 12 build tools, as well as changes in NgRx 8, there are
no guarantees that Auto-Entity will continue to work in Angular 8 applications.
- **build:** Library is now being built with TypeScript 4. While we are not yet explicitly using
any TypeScript 4.x features, and thus should still support TypeScript 3.x, this change in underlying
build tools for the library may have impacts on builds for dependent projects.

<a name="0.6.1"></a>

# [0.6.1](https://github.com/briebug/ngrx-auto-entity/compare/0.6.0...0.6.1) Beta (2021-06-24)
Expand Down
48 changes: 30 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
[![CircleCI](https://img.shields.io/circleci/build/github/briebug/ngrx-auto-entity/develop.svg)](https://circleci.com/gh/briebug/ngrx-auto-entity)
[![Issues](https://img.shields.io/github/issues/briebug/ngrx-auto-entity.svg)](https://github.com/briebug/ngrx-auto-entity/issues)
[![Version](https://img.shields.io/npm/v/@briebug/ngrx-auto-entity.svg)
![Version](https://img.shields.io/npm/v/@briebug/ngrx-auto-entity.svg)
![Downloads](https://img.shields.io/npm/dm/@briebug/ngrx-auto-entity.svg)
![Downloads](https://img.shields.io/npm/dt/@briebug/ngrx-auto-entity.svg)](https://www.npmjs.com/package/@briebug/ngrx-auto-entity)
[![Downloads](https://img.shields.io/npm/dt/@briebug/ngrx-auto-entity.svg)](https://www.npmjs.com/package/@briebug/ngrx-auto-entity)



# NgRX Auto-Entity

Automatic entities for [@ngrx](https://github.com/ngrx/platform)! Simplifying reactive state!

**Announcing: ANGULAR 12 is now supported! NgRx Auto-Entity has been updated to support the latest
versions of Angular, as well as NgRx through version 12. With this update, we have also dropped
support for Angular 8, meaning the supported versions of angular are 9-12.**

**NOTE: Angular 13 support is being researched. Starting with Ng 13, all View Engine support will
be dropped from the platform completely. One of our goals with Auto-Entity has been to support
older versions of angular as long as possible, given the often slower upgrade times for many
companies. With Ng 13 putting the burden on library developers to support Ivy, that forces
groups like ourselves to build our library to target specific instruction sets. That will
increase the challenge of supporting older versions of Angular. As such, we are actively looking
for ways to deal with that scenario, and hope to be prepared when the time comes.**

**NOTE: NgRX Auto-Entity is currently a _beta_ library. It is in flux as we continue to refine and
enhance it's functionality, identify and eliminate bugs, optimize it's performance. If you
find any errors in this documentation, or bugs within the library, please let us know!**

**APOLOGIES: For those using NgRx Auto-Entity, we apologize for issues with the recent v0.3.0
release! We used an npm module, uuidv4, and back in november our usage of it was working. It
appears as though that library was changed fairly significantly since then, with the default
import removed. That lead to issues for some people, depending on the version of uuidv4 they
installed/had installed. We have dropped uuidv4 and are now using a small, fast built-in function
instead in v0.3.1 and onward, which should resolve the issues. Again, we apologize for the inconvenience!**

## What is it?

NgRX Auto-Entity aims to provide a seamless means of dealing with standard entity actions and
Expand All @@ -29,10 +34,12 @@ NgRX itself. This library is not a replacement for or alternative to NgRX. It wo
standard paradigm that NgRX has set forth, making use of actions, reducers & effects like any
other NgRX application.

What Auto-Entity does do is provide a set of ready-made, generic actions for handling all of
the standard CRUD operations for entities, so you neither have to write nor generate any of that
code yourself. Auto-Entity generates **pre-fabricated facades** around NgRx and the store/state,
providing a cohesive, logical and simplified API into your state. Auto-Entity presents a flexible
What Auto-Entity does do is provide a set of ready-made actions, selectors, effects & a core
metareducer for handling all of the standard CRUD functionality for entities, so you neither
have to write nor generate any of that code yourself. Auto-Entity supports implementing applications
with recommended best practices, including good action hygiene. Auto-Entity also generates
**pre-fabricated facades** around NgRx and the store/state, providing a cohesive, logical and
simplified API into your state for those who prefer facades. Auto-Entity presents a flexible
framework that you may use in its entirety for all of your entity needs, or use piecemeal as
necessary in order to achieve your specific goals.

Expand All @@ -43,12 +50,12 @@ custom reducers.

# Dependencies

NgRx Auto-Entity currently depends on Angular 8+, NgRx 8+ and RxJs 6.
NgRx Auto-Entity currently depends on Angular 9+, NgRx 9+ and RxJs 6.


[![Deps-AngularCore](https://img.shields.io/badge/@angular/core-%5E8.x-blue.svg)](https://github.com/angular/angular)
[![Deps-AngularCommon](https://img.shields.io/badge/@angular/common-%5E8.x-blue.svg)](https://github.com/angular/angular)
[![Deps-NgRxStore](https://img.shields.io/badge/@ngrx/store-%5E8.x-blue.svg)](https://github.com/ngrx/platform)
[![Deps-AngularCore](https://img.shields.io/badge/@angular/core-%5E9.x-blue.svg)](https://github.com/angular/angular)
[![Deps-AngularCommon](https://img.shields.io/badge/@angular/common-%5E9.x-blue.svg)](https://github.com/angular/angular)
[![Deps-NgRxStore](https://img.shields.io/badge/@ngrx/store-%5E9.x-blue.svg)](https://github.com/ngrx/platform)
[![Deps-RxJs](https://img.shields.io/badge/rxjs-%5E6.x-blue.svg)](https://github.com/reactivex/rxjs)

# Installation
Expand Down Expand Up @@ -85,14 +92,17 @@ If you wish to learn more about how Auto-Entity works, you may jump to the
- [x] Built-in saving indicator tracking
- [x] Built-in deleting indicator tracking
- [x] Built-in entity selection support
- [x] Dynamically generated per-entity actions
- [x] Dynamically generated per-entity selectors
- [x] Pre-fabricated facade generation
- [x] Generated stub reducers
- [x] Automatic correlation of related initiating and result actions
- [x] Enhanced IEntityInfo interface with naming utilities
- [x] Filtering of entities effects handle
- [x] Custom transformation of data to and from the server (i.e. ISO date to Date())
- [x] Optional data loading it not already present, with max age
- [ ] Normalization of API with NgRx 8 functional/factory function architecture
- [x] Normalization of API with NgRx 8 functional/factory function architecture
- [ ] Dynamic generate-only-on-use design
- [ ] Extended effects for loading indicator display, toasts or snackbars, etc.
- [ ] Filtering of entities meta reducer handles
- [ ] Pre-fabricated, ready-to-go, reusable entity services
Expand All @@ -108,6 +118,8 @@ If you wish to learn more about how Auto-Entity works, you may jump to the
- [Jon Rista](https://github.com/jrista): Design, Architecture & Implementation
- [Kevin Schuchard](https://github.com/schuchard): Design & Implementation
- [Brian Love](https://github.com/blove): Design & Implementation
- [Jesse Wells](https://github.com/Wells-Codes): Implementation
- [Alice Paquette](https://github.com/paquettealice): Implementation
- [Patrice Paquette](https://github.com/patpaquette): Implementation
- [Anthony Jones](https://github.com/anthonymjones): Implementation

43 changes: 27 additions & 16 deletions projects/ngrx-auto-entity/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,22 @@

Automatic entities for [@ngrx](https://github.com/ngrx/platform)! Simplifying reactive state!

**Announcing: ANGULAR 12 is now supported! NgRx Auto-Entity has been updated to support the latest
versions of Angular, as well as NgRx through version 12. With this update, we have also dropped
support for Angular 8, meaning the supported versions of angular are 9-12.**

**NOTE: Angular 13 support is being researched. Starting with Ng 13, all View Engine support will
be dropped from the platform completely. One of our goals with Auto-Entity has been to support
older versions of angular as long as possible, given the often slower upgrade times for many
companies. With Ng 13 putting the burden on library developers to support Ivy, that forces
groups like ourselves to build our library to target specific instruction sets. That will
increase the challenge of supporting older versions of Angular. As such, we are actively looking
for ways to deal with that scenario, and hope to be prepared when the time comes.**

**NOTE: NgRX Auto-Entity is currently a _beta_ library. It is in flux as we continue to refine and
enhance it's functionality, identify and eliminate bugs, optimize it's performance. If you
find any errors in this documentation, or bugs within the library, please let us know!**

**APOLOGIES: For those using NgRx Auto-Entity, we apologize for issues with the recent v0.3.0
release! We used an npm module, uuidv4, and back in november our usage of it was working. It
appears as though that library was changed fairly significantly since then, with the default
import removed. That lead to issues for some people, depending on the version of uuidv4 they
installed/had installed. We have dropped uuidv4 and are now using a small, fast built-in function
instead in v0.3.1 and onward, which should resolve the issues. Again, we apologize for the inconvenience!**

## What is it?

NgRX Auto-Entity aims to provide a seamless means of dealing with standard entity actions and
Expand All @@ -29,10 +34,12 @@ NgRX itself. This library is not a replacement for or alternative to NgRX. It wo
standard paradigm that NgRX has set forth, making use of actions, reducers & effects like any
other NgRX application.

What Auto-Entity does do is provide a set of ready-made, generic actions for handling all of
the standard CRUD operations for entities, so you neither have to write nor generate any of that
code yourself. Auto-Entity generates **pre-fabricated facades** around NgRx and the store/state,
providing a cohesive, logical and simplified API into your state. Auto-Entity presents a flexible
What Auto-Entity does do is provide a set of ready-made actions, selectors, effects & a core
metareducer for handling all of the standard CRUD functionality for entities, so you neither
have to write nor generate any of that code yourself. Auto-Entity supports implementing applications
with recommended best practices, including good action hygiene. Auto-Entity also generates
**pre-fabricated facades** around NgRx and the store/state, providing a cohesive, logical and
simplified API into your state for those who prefer facades. Auto-Entity presents a flexible
framework that you may use in its entirety for all of your entity needs, or use piecemeal as
necessary in order to achieve your specific goals.

Expand All @@ -43,12 +50,12 @@ custom reducers.

# Dependencies

NgRx Auto-Entity currently depends on Angular 8+, NgRx 8+ and RxJs 6.
NgRx Auto-Entity currently depends on Angular 9+, NgRx 9+ and RxJs 6.


[![Deps-AngularCore](https://img.shields.io/badge/@angular/core-%5E8.x-blue.svg)](https://github.com/angular/angular)
[![Deps-AngularCommon](https://img.shields.io/badge/@angular/common-%5E8.x-blue.svg)](https://github.com/angular/angular)
[![Deps-NgRxStore](https://img.shields.io/badge/@ngrx/store-%5E8.x-blue.svg)](https://github.com/ngrx/platform)
[![Deps-AngularCore](https://img.shields.io/badge/@angular/core-%5E9.x-blue.svg)](https://github.com/angular/angular)
[![Deps-AngularCommon](https://img.shields.io/badge/@angular/common-%5E9.x-blue.svg)](https://github.com/angular/angular)
[![Deps-NgRxStore](https://img.shields.io/badge/@ngrx/store-%5E9.x-blue.svg)](https://github.com/ngrx/platform)
[![Deps-RxJs](https://img.shields.io/badge/rxjs-%5E6.x-blue.svg)](https://github.com/reactivex/rxjs)

# Installation
Expand Down Expand Up @@ -85,14 +92,17 @@ If you wish to learn more about how Auto-Entity works, you may jump to the
- [x] Built-in saving indicator tracking
- [x] Built-in deleting indicator tracking
- [x] Built-in entity selection support
- [x] Dynamically generated per-entity actions
- [x] Dynamically generated per-entity selectors
- [x] Pre-fabricated facade generation
- [x] Generated stub reducers
- [x] Automatic correlation of related initiating and result actions
- [x] Enhanced IEntityInfo interface with naming utilities
- [x] Filtering of entities effects handle
- [x] Custom transformation of data to and from the server (i.e. ISO date to Date())
- [x] Optional data loading it not already present, with max age
- [ ] Normalization of API with NgRx 8 functional/factory function architecture
- [x] Normalization of API with NgRx 8 functional/factory function architecture
- [ ] Dynamic generate-only-on-use design
- [ ] Extended effects for loading indicator display, toasts or snackbars, etc.
- [ ] Filtering of entities meta reducer handles
- [ ] Pre-fabricated, ready-to-go, reusable entity services
Expand All @@ -108,6 +118,7 @@ If you wish to learn more about how Auto-Entity works, you may jump to the
- [Jon Rista](https://github.com/jrista): Design, Architecture & Implementation
- [Kevin Schuchard](https://github.com/schuchard): Design & Implementation
- [Brian Love](https://github.com/blove): Design & Implementation
- [Jesse Wells](https://github.com/Wells-Codes): Implementation
- [Alice Paquette](https://github.com/paquettealice): Implementation
- [Patrice Paquette](https://github.com/patpaquette): Implementation
- [Anthony Jones](https://github.com/anthonymjones): Implementation
Expand Down
2 changes: 1 addition & 1 deletion projects/ngrx-auto-entity/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.7.0-alpha.2",
"version": "0.7.0",
"name": "@briebug/ngrx-auto-entity",
"description": "Automatic Entity State and Facades for NgRx. Simplifying reactive state!",
"licnese": "MIT",
Expand Down

0 comments on commit f7da6c6

Please sign in to comment.