From f0d8338066efe296b607e31b40c1d0eee18b0284 Mon Sep 17 00:00:00 2001 From: Jon Rista Date: Tue, 23 Apr 2019 20:00:42 -0600 Subject: [PATCH 1/2] refactor(files): update files to use Create rather than Insert for creation actions refactor(files): update selector names to follow simplified name model used in other BrieBug projects refactor(files): update imports to move away from terrible 'fromWhatever' importing style --- .../__name@dasherize__.actions.ts | 26 ++++++------ .../__name@dasherize__.effects.spec.ts | 22 +++++----- .../__name@dasherize__.effects.ts | 16 ++++---- .../__name@dasherize__.reducer.spec.ts | 12 +++--- .../__name@dasherize__.reducer.ts | 14 +++---- .../__name@dasherize@if-flat__/index.ts | 40 +++++++++++-------- 6 files changed, 68 insertions(+), 62 deletions(-) diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts index cbc03b4..6be529a 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts @@ -4,9 +4,9 @@ import { <%= classify(name) %> } from './<%= dasherize(name) %>.model'; import { <%= classify(name) %>SearchQuery } from './<%= dasherize(name) %>.reducer'; export enum <%= classify(name) %>ActionTypes { - Insert<%= classify(name) %> = '[<%= classify(name) %>] Insert', - Insert<%= classify(name) %>Success = '[<%= classify(name) %>] Insert Success', - Insert<%= classify(name) %>Fail = '[<%= classify(name) %>] Insert Fail', + Create<%= classify(name) %> = '[<%= classify(name) %>] Insert', + Create<%= classify(name) %>Success = '[<%= classify(name) %>] Insert Success', + Create<%= classify(name) %>Fail = '[<%= classify(name) %>] Insert Fail', SearchAll<%= classify(name) %>Entities = '[<%= classify(name) %>] Search', SearchAll<%= classify(name) %>EntitiesSuccess = '[<%= classify(name) %>] Search Success', @@ -28,20 +28,20 @@ export enum <%= classify(name) %>ActionTypes { Select<%= classify(name) %>ById = '[<%= classify(name) %>] Select By ID' } -// ========================================= INSERT +// ========================================= CREATE -export class Insert<%= classify(name) %> implements Action { - readonly type = <%= classify(name) %>ActionTypes.Insert<%= classify(name) %>; +export class Create<%= classify(name) %> implements Action { + readonly type = <%= classify(name) %>ActionTypes.Create<%= classify(name) %>; constructor(public payload: { <%= name %>: <%= classify(name) %> }) {} } -export class Insert<%= classify(name) %>Success implements Action { - readonly type = <%= classify(name) %>ActionTypes.Insert<%= classify(name) %>Success; +export class Create<%= classify(name) %>Success implements Action { + readonly type = <%= classify(name) %>ActionTypes.Create<%= classify(name) %>Success; constructor(public payload: { result: <%= classify(name) %> }) {} } -export class Insert<%= classify(name) %>Fail implements Action { - readonly type = <%= classify(name) %>ActionTypes.Insert<%= classify(name) %>Fail; +export class Create<%= classify(name) %>Fail implements Action { + readonly type = <%= classify(name) %>ActionTypes.Create<%= classify(name) %>Fail; constructor(public payload: { error: string }) {} } @@ -127,9 +127,9 @@ export class Select<%= classify(name) %>ById implements Action { } export type <%= classify(name) %>Actions = - | Insert<%= classify(name) %> - | Insert<%= classify(name) %>Success - | Insert<%= classify(name) %>Fail + | Create<%= classify(name) %> + | Create<%= classify(name) %>Success + | Create<%= classify(name) %>Fail | SearchAll<%= classify(name) %>Entities | SearchAll<%= classify(name) %>EntitiesSuccess | SearchAll<%= classify(name) %>EntitiesFail diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts index 6df2901..044f5ab 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.spec.ts @@ -4,9 +4,9 @@ import { cold, hot } from 'jasmine-marbles'; import { Observable } from 'rxjs'; import { - Insert<%= classify(name) %>, - Insert<%= classify(name) %>Success, - Insert<%= classify(name) %>Fail, + Create<%= classify(name) %>, + Create<%= classify(name) %>Success, + Create<%= classify(name) %>Fail, SearchAll<%= classify(name) %>Entities, SearchAll<%= classify(name) %>EntitiesSuccess, SearchAll<%= classify(name) %>EntitiesFail, @@ -52,15 +52,15 @@ describe('<%= classify(name) %>Effects', () => { service = TestBed.get(<%= classify(name) %>Service); }); - it('should be created', () => { + it('should be constructed', () => { expect(effects).toBeTruthy(); }); - describe('insert', () => { - it('should return Insert<%= classify(name) %>Success action with entity on success', () => { + describe('create', () => { + it('should return Create<%= classify(name) %>Success action with entity on success', () => { const entity = generate<%= classify(name) %>(); - const insertAction = new Insert<%= classify(name) %>({ <%= name %>: entity }); - const successAction = new Insert<%= classify(name) %>Success({ result: entity }); + const insertAction = new Create<%= classify(name) %>({ <%= name %>: entity }); + const successAction = new Create<%= classify(name) %>Success({ result: entity }); actions = hot('a-', { a: insertAction }); service.create.and.returnValue(cold('-e|', { e: entity })); @@ -69,10 +69,10 @@ describe('<%= classify(name) %>Effects', () => { expect(effects.insert).toBeObservable(expected); }); - it('should return Insert<%= classify(name) %>Fail with error object on failure', () => { + it('should return Create<%= classify(name) %>Fail with error object on failure', () => { const entity = generate<%= classify(name) %>(); - const insertAction = new Insert<%= classify(name) %>({ <%= name %>: entity }); - const failAction = new Insert<%= classify(name) %>Fail({ error: 'fail' }); + const insertAction = new Create<%= classify(name) %>({ <%= name %>: entity }); + const failAction = new Create<%= classify(name) %>Fail({ error: 'fail' }); actions = hot('i-', { i: insertAction }); service.create.and.returnValue(cold('-#|', {}, { message: 'fail'})); diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.ts index 40d35d0..2c36894 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.effects.ts @@ -14,9 +14,9 @@ import { Update } from '@ngrx/entity'; import { <%= classify(name) %>ActionTypes, - Insert<%= classify(name) %>, - Insert<%= classify(name) %>Success, - Insert<%= classify(name) %>Fail, + Create<%= classify(name) %>, + Create<%= classify(name) %>Success, + Create<%= classify(name) %>Fail, SearchAll<%= classify(name) %>Entities, SearchAll<%= classify(name) %>EntitiesSuccess, SearchAll<%= classify(name) %>EntitiesFail, @@ -38,16 +38,16 @@ import { <%= classify(name) %>Service } from './<%= dasherize(name) %>.service'; @Injectable() export class <%= classify(name) %>Effects { - // ========================================= INSERT + // ========================================= CREATE @Effect() - insert: Observable = this.actions$ + create: Observable = this.actions$ .pipe( - ofType>(<%= classify(name) %>ActionTypes.Insert<%= classify(name) %>), + ofType>(<%= classify(name) %>ActionTypes.Create<%= classify(name) %>), exhaustMap((action) => this.service.create(action.payload.<%= name %>).pipe( - map((<%= name %>: <%= classify(name) %>) => new Insert<%= classify(name) %>Success({ result: <%= name %> })), + map((<%= name %>: <%= classify(name) %>) => new Create<%= classify(name) %>Success({ result: <%= name %> })), catchError(({ message }) => - of(new Insert<%= classify(name) %>Fail({ error: message })) + of(new Create<%= classify(name) %>Fail({ error: message })) ) ) ) diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.spec.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.spec.ts index ed6e6b2..d388bb0 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.spec.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.spec.ts @@ -30,9 +30,9 @@ describe('<%= name %>Reducer', () => { }); }); - describe('upon Insert<%= classify(name) %>', () => { + describe('upon Create<%= classify(name) %>', () => { it('should set loading to true and clear any error', () => { - const action = new actions.Insert<%= classify(name) %>({ <%= name %>: generate<%= classify(name) %>() }); + const action = new actions.Create<%= classify(name) %>({ <%= name %>: generate<%= classify(name) %>() }); expect(<%= name %>Reducer(INITIAL_STATE_WITH_ERROR, action)).toEqual({ ...initialState, @@ -42,10 +42,10 @@ describe('<%= name %>Reducer', () => { }); }); - describe('upon Insert<%= classify(name) %>Success', () => { + describe('upon Create<%= classify(name) %>Success', () => { it('should add the given <%= classify(name) %>, set loading to false, and clear any error', () => { const result = generate<%= classify(name) %>(); - const action = new actions.Insert<%= classify(name) %>Success({ result }); + const action = new actions.Create<%= classify(name) %>Success({ result }); expect(<%= name %>Reducer(INITIAL_STATE_WITH_ERROR, action)).toEqual({ ...initialState, @@ -56,10 +56,10 @@ describe('<%= name %>Reducer', () => { }); }); - describe('upon Insert<%= classify(name) %>Fail', () => { + describe('upon Create<%= classify(name) %>Fail', () => { it('should set loading to true and echo the error', () => { const error = 'test insert error'; - const action = new actions.Insert<%= classify(name) %>Fail({ error }); + const action = new actions.Create<%= classify(name) %>Fail({ error }); expect(<%= name %>Reducer(initialState, action)).toEqual({ ...initialState, diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.ts index 582083e..6ac5087 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.reducer.ts @@ -17,9 +17,9 @@ export interface <%= classify(name) %>State extends EntityState<<%= classify(nam query: <%= classify(name) %>SearchQuery; } -export const adapter: EntityAdapter<<%= classify(name) %>> = createEntityAdapter<<%= classify(name) %>>(); +export const <%= name %>Adapter: EntityAdapter<<%= classify(name) %>> = createEntityAdapter<<%= classify(name) %>>(); -export const initialState: <%= classify(name) %>State = adapter.getInitialState({ +export const initial<%= classify(name)%>State: <%= classify(name) %>State = adapter.getInitialState({ // additional <%= name %> state properties selectedId: null, loading: false, @@ -32,27 +32,27 @@ export const initialState: <%= classify(name) %>State = adapter.getInitialState( } }); -export function <%= name %>Reducer(state = initialState, action: <%= classify(name) %>Actions): <%= classify(name) %>State { +export function <%= name %>Reducer(state = initial<%= classify(name)%>State, action: <%= classify(name) %>Actions): <%= classify(name) %>State { switch (action.type) { - case <%= classify(name) %>ActionTypes.Insert<%= classify(name) %>: + case <%= classify(name) %>ActionTypes.Create<%= classify(name) %>: return { ...state, loading: true, error: '' }; - case <%= classify(name) %>ActionTypes.Insert<%= classify(name) %>Success: + case <%= classify(name) %>ActionTypes.Create<%= classify(name) %>Success: return { ...adapter.addOne(action.payload.result, state), loading: false, error: '' }; - case <%= classify(name) %>ActionTypes.Insert<%= classify(name) %>Fail: + case <%= classify(name) %>ActionTypes.Create<%= classify(name) %>Fail: return { ...state, loading: false, - error: '<%= classify(name) %> insert failed: ' + action.payload.error + error: '<%= classify(name) %> create failed: ' + action.payload.error }; case <%= classify(name) %>ActionTypes.SearchAll<%= classify(name) %>Entities: diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/index.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/index.ts index 17d9a68..aa921ed 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/index.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/index.ts @@ -1,40 +1,46 @@ import { createSelector, createFeatureSelector } from '@ngrx/store'; -import * as from<%= classify(name) %>State from './<%= dasherize(name) %>.reducer'; +import { + <%= name %>Reducer, + getSelectedId, + getLoading, + getError, + getQuery +} from './<%= dasherize(name) %>.reducer'; import { <%= classify(name) %>State } from './<%= dasherize(name) %>.reducer'; export const get<%= classify(name) %>State = createFeatureSelector<<%= classify(name) %>State>('<%= name %>'); export const { - selectIds: getAll<%= classify(name) %>Ids, - selectEntities: getAll<%= classify(name) %>EntitiesAsMap, - selectAll: getAll<%= classify(name) %>EntitiesAsArray, - selectTotal: getTotal<%= classify(name) %>Entities -} = from<%= classify(name) %>State.adapter.getSelectors(get<%= classify(name) %>State); + selectIds: <%= name %>Ids, + selectEntities: <%= name %>Entities, + selectAll: <%= name %>, + selectTotal: <%= name %>Count +} = <%= name %>Adapter.getSelectors(get<%= classify(name) %>State); -export const getSelected<%= classify(name) %>Id = createSelector( +export const current<%= classify(name) %>Id = createSelector( get<%= classify(name) %>State, - from<%= classify(name) %>State.getSelectedId + getSelectedId ); -export const getSelected<%= classify(name) %> = createSelector( - getSelected<%= classify(name) %>Id, - getAll<%= classify(name) %>EntitiesAsMap, +export const current<%= classify(name) %> = createSelector( + current<%= classify(name) %>Id, + <%= name %>Entities, (selected<%= classify(name) %>Id, <%= name %>Entities) => selected<%= classify(name) %>Id && <%= name %>Entities[selected<%= classify(name) %>Id] ); -export const getLoading = createSelector( +export const <%= name %>Loading = createSelector( // TODO: Need to pluraliae name get<%= classify(name) %>State, - from<%= classify(name) %>State.getLoading + getLoading ); -export const getError = createSelector( +export const <%= name %>Error = createSelector( get<%= classify(name) %>State, - from<%= classify(name) %>State.getError + getError ); -export const getQuery = createSelector( +export const <%= name %>Query = createSelector( get<%= classify(name) %>State, - from<%= classify(name) %>State.getQuery + getQuery ); From 03d522aa160461730243d19b425479ad24da4cbf Mon Sep 17 00:00:00 2001 From: Jesse Sanders Date: Sat, 27 Apr 2019 08:23:31 -0600 Subject: [PATCH 2/2] Update src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts --- .../__name@dasherize@if-flat__/__name@dasherize__.actions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts index 6be529a..52bd85b 100644 --- a/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts +++ b/src/ngrx-entity/__files__/__name@dasherize@if-flat__/__name@dasherize__.actions.ts @@ -4,7 +4,7 @@ import { <%= classify(name) %> } from './<%= dasherize(name) %>.model'; import { <%= classify(name) %>SearchQuery } from './<%= dasherize(name) %>.reducer'; export enum <%= classify(name) %>ActionTypes { - Create<%= classify(name) %> = '[<%= classify(name) %>] Insert', + Create<%= classify(name) %> = '[<%= classify(name) %>] Create', Create<%= classify(name) %>Success = '[<%= classify(name) %>] Insert Success', Create<%= classify(name) %>Fail = '[<%= classify(name) %>] Insert Fail',