@@ -43,7 +43,7 @@ export default class extends BaseGenerator {
4343 handlebars . registerHelper ( "isArray" , hbh_array . isArray ) ;
4444 handlebars . registerHelper ( "inArray" , hbh_array . inArray ) ;
4545 handlebars . registerHelper ( "forEach" , hbh_array . forEach ) ;
46- handlebars . registerHelper ( "downcase " , hbh_string . downcase ) ;
46+ handlebars . registerHelper ( "lowercase " , hbh_string . lowercase ) ;
4747
4848 this . registerSwitchHelper ( ) ;
4949 }
@@ -105,15 +105,13 @@ export default class extends BaseGenerator {
105105 const lc = resource . title . toLowerCase ( ) ;
106106 const titleUcFirst =
107107 resource . title . charAt ( 0 ) . toUpperCase ( ) + resource . title . slice ( 1 ) ;
108+ const fields = this . parseFields ( resource ) ;
108109
109110 const formFields = this . buildFields ( resource . writableFields ) ;
110111
111112 const dateTypes = [ "time" , "date" , "dateTime" ] ;
112113 const formContainsDate = formFields . some ( ( e ) => dateTypes . includes ( e . type ) ) ;
113114
114- const fields = this . buildFields ( resource . readableFields ) ;
115- const listContainsDate = fields . some ( ( e ) => dateTypes . includes ( e . type ) ) ;
116-
117115 const parameters = [ ] ;
118116 params . forEach ( ( p ) => {
119117 const param = fields . find ( ( field ) => field . name === p . variable ) ;
@@ -139,7 +137,6 @@ export default class extends BaseGenerator {
139137 uc : resource . title . toUpperCase ( ) ,
140138 fields,
141139 dateTypes,
142- listContainsDate,
143140 paramsHaveRefs,
144141 parameters,
145142 formFields,
@@ -304,4 +301,31 @@ export default class extends BaseGenerator {
304301 recPerPage : "Records per page:" ,
305302 } ;
306303 }
304+
305+ parseFields ( resource ) {
306+ const fields = [
307+ ...resource . writableFields ,
308+ ...resource . readableFields ,
309+ ] . reduce ( ( list , field ) => {
310+ if ( list [ field . name ] ) {
311+ return list ;
312+ }
313+
314+ const isReferences = field . reference && field . maxCardinality !== 1 ;
315+ const isEmbeddeds = field . embedded && field . maxCardinality !== 1 ;
316+
317+ return {
318+ ...list ,
319+ [ field . name ] : {
320+ ...field ,
321+ readonly : false ,
322+ isReferences,
323+ isEmbeddeds,
324+ isRelations : isEmbeddeds || isReferences ,
325+ } ,
326+ } ;
327+ } , { } ) ;
328+
329+ return Object . values ( fields ) ;
330+ }
307331}
0 commit comments