UNPKG

generator-zionapps

Version:

Angular 9 Code Generator

27 lines (21 loc) 1.5 kB
/** * <%= pascalCase(singularDomainName) %> Utils */ import {createEntityAdapter, EntityAdapter} from '@ngrx/entity'; import {getPropertyValue, hasNoItems, isPropertyDefined} from '@zionapps/core'; import {<%= pascalCase(singularDomainName) %>} from './<%= paramCase(pluralDomainName) %>.domain'; export const canSave<%= pascalCase(singularDomainName) %> = (item: <%= pascalCase(singularDomainName) %>): boolean => isPropertyDefined(item, 'id'); export const canSave<%= pascalCase(singularDomainName) %>List = (list: <%= pascalCase(singularDomainName) %>[]): boolean => { if (hasNoItems(list)) { return false; } return list.reduce((wasValid, item): boolean => canSave<%= pascalCase(singularDomainName) %>(item) ? wasValid : false, true); }; export const get<%= pascalCase(singularDomainName) %>ById = (item: <%= pascalCase(singularDomainName) %>): number => getPropertyValue(item, 'id', null); export const sort<%= pascalCase(singularDomainName) %>ByDate = (a: <%= pascalCase(singularDomainName) %>, b: <%= pascalCase(singularDomainName) %>): number => { return getPropertyValue(a, 'createdDateTime', 0) > getPropertyValue(b, 'createdDateTime', 0) ? -1 : 1; }; export const <%= camelCase(pluralDomainName) %>Adapter: EntityAdapter<<%= pascalCase(singularDomainName) %>> = createEntityAdapter<<%= pascalCase(singularDomainName) %>>({ selectId: get<%= pascalCase(singularDomainName) %>ById, sortComparer: sort<%= pascalCase(singularDomainName) %>ByDate, });