UNPKG

generator-zionapps

Version:

Angular 9 Code Generator

53 lines (43 loc) 2.63 kB
import {Dictionary} from '@ngrx/entity/src/models'; /** * <%= pascalCase(singularDomainName) %> Selectors */ import {createFeatureSelector, createSelector, MemoizedSelector} from '@ngrx/store'; import {getPropertyValue, isItemDefined} from '@zionapps/core'; import {<%= pascalCase(singularDomainName) %>, <%= pascalCase(pluralDomainName) %>Domain} from './<%= paramCase(pluralDomainName) %>.domain'; import {<%= camelCase(pluralDomainName) %>Adapter} from './<%= paramCase(pluralDomainName) %>.utils'; const { selectIds, selectEntities, selectAll, selectTotal, } = <%= camelCase(pluralDomainName) %>Adapter.getSelectors(); export const get<%= pascalCase(pluralDomainName) %>State: MemoizedSelector<<%= pascalCase(singularDomainName) %>, <%= pascalCase(pluralDomainName) %>Domain.State> = createFeatureSelector<<%= pascalCase(pluralDomainName) %>Domain.State>(<%= pascalCase(pluralDomainName) %>Domain.storeName); export const select<%= pascalCase(singularDomainName) %>Entities = createSelector( get<%= pascalCase(pluralDomainName) %>State, (state: <%= pascalCase(pluralDomainName) %>Domain.State): Dictionary<<%= pascalCase(singularDomainName) %>> => selectEntities(state), ); export const select<%= pascalCase(singularDomainName) %>Ids = createSelector( get<%= pascalCase(pluralDomainName) %>State, (state: <%= pascalCase(pluralDomainName) %>Domain.State): number[] | string[] => selectIds(state), ); export const selectCurrent<%= pascalCase(singularDomainName) %>Id = createSelector( get<%= pascalCase(pluralDomainName) %>State, (state: <%= pascalCase(pluralDomainName) %>Domain.State): number => getPropertyValue(state, 'currentId', null), ); export const selectCurrent<%= pascalCase(singularDomainName) %> = createSelector( get<%= pascalCase(pluralDomainName) %>State, selectCurrent<%= pascalCase(singularDomainName) %>Id, (state: <%= pascalCase(pluralDomainName) %>Domain.State, currentId: number): <%= pascalCase(singularDomainName) %> | null => { const entities = selectEntities(state); return isItemDefined(entities) && !!currentId ? entities[currentId] : null; }, ); export const selectAll<%= pascalCase(pluralDomainName) %> = createSelector( get<%= pascalCase(pluralDomainName) %>State, (state: <%= pascalCase(pluralDomainName) %>Domain.State): <%= pascalCase(singularDomainName) %>[] => selectAll(state), ); export const selectTotal<%= pascalCase(pluralDomainName) %> = createSelector( get<%= pascalCase(pluralDomainName) %>State, (state: <%= pascalCase(pluralDomainName) %>Domain.State): number => selectTotal(state), );