@@ -68,115 +68,27 @@ export async function obtainColumnsFromFolder(
6868 return sortColumnsByPosition ( columns ) ;
6969}
7070
71- function parseDatabaseToTableColumn (
72- databaseColumn : DatabaseColumn ,
73- columnKey : string ,
74- index : number
75- ) : TableColumn {
76- const tableColumn : TableColumn = {
77- ...( databaseColumn as Partial < TableColumn > ) ,
78- id : columnKey ,
79- dataType : databaseColumn . input ,
80- position : databaseColumn . position ?? index ,
81- key : databaseColumn . key ?? columnKey ,
82- label : databaseColumn . label ,
83- accessor : databaseColumn . accessor ?? dbTrim ( databaseColumn . label ) ,
84- csvCandidate : databaseColumn . csvCandidate ?? true ,
85- } ;
86- return tableColumn ;
87- }
88-
89- async function columnOptions (
71+ function columnOptions (
9072 columnKey : string ,
9173 index : number ,
9274 column : DatabaseColumn
93- ) : Promise < TableColumn > {
75+ ) : TableColumn {
9476 LOGGER . debug ( `=> columnOptions. column: ${ JSON . stringify ( column ) } ` ) ;
9577 const options : RowSelectOption [ ] = [ ] ;
96- const tableRow : TableColumn = parseDatabaseToTableColumn (
97- column ,
98- columnKey ,
99- index
100- ) ;
101- /**
102- * return plain text
103- * @returns {TableColumn }
104- */
105- function isText ( ) : TableColumn {
106- LOGGER . debug ( `<= columnOptions` , `return text column` ) ;
107- return {
108- ...tableRow ,
109- dataType : DataTypes . TEXT ,
110- options : options ,
111- } ;
112- }
113-
114- /**
115- * return number
116- * @returns {TableColumn }
117- */
118- function isNumber ( ) : TableColumn {
119- LOGGER . debug ( `<= columnOptions` , `return number column` ) ;
120- return {
121- ...tableRow ,
122- dataType : DataTypes . NUMBER ,
123- options : options ,
124- } ;
125- }
126- /**
127- * return selector
128- * @returns {TableColumn }
129- */
130- function isSelect ( ) : TableColumn {
131- LOGGER . debug ( `<= columnOptions` , `return select column` ) ;
132- return {
133- ...tableRow ,
134- dataType : DataTypes . SELECT ,
135- options : options ,
136- } ;
137- }
138-
139- /**
140- * return markdown rendered text
141- * @returns {TableColumn }
142- */
143- function isMarkdown ( ) : TableColumn {
144- LOGGER . debug ( `<= columnOptions` , `return markdown column` ) ;
145- return {
146- ...tableRow ,
147- dataType : DataTypes . MARKDOWN ,
148- options : options ,
149- } ;
150- }
151-
152- function isNewColumn ( ) : TableColumn {
153- LOGGER . debug ( `<= columnOptions` , `return new column` ) ;
154- return {
155- ...tableRow ,
156- dataType : DataTypes . NEW_COLUMN ,
157- options : options ,
158- } ;
159- }
16078
161- function isCalendar ( ) : TableColumn {
162- LOGGER . debug ( `<= columnOptions` , `return calendar column` ) ;
79+ if ( Object . values ( DataTypes ) . includes ( column . input ) ) {
80+ LOGGER . debug ( `<= columnOptions` , `return ${ column . input } column` ) ;
16381 return {
164- ...tableRow ,
165- dataType : DataTypes . CALENDAR ,
82+ ...( column as Partial < TableColumn > ) ,
83+ position : column . position ?? index ,
84+ key : column . key ?? columnKey ,
85+ accessor : column . accessor ?? dbTrim ( column . label ) ,
86+ csvCandidate : column . csvCandidate ?? true ,
87+ id : columnKey ,
88+ label : column . label ,
89+ dataType : column . input ,
16690 options : options ,
16791 } ;
168- }
169-
170- // Record of options
171- let inputs : Record < string , any > = { } ;
172- inputs [ DataTypes . TEXT ] = isText ;
173- inputs [ DataTypes . NUMBER ] = isNumber ;
174- inputs [ DataTypes . SELECT ] = isSelect ;
175- inputs [ DataTypes . MARKDOWN ] = isMarkdown ;
176- inputs [ DataTypes . NEW_COLUMN ] = isNewColumn ;
177- inputs [ DataTypes . CALENDAR ] = isCalendar ;
178- if ( inputs . hasOwnProperty ( column . input ) ) {
179- return await inputs [ column . input ] ( ) ;
18092 } else {
18193 throw `Error: option ${ column . input } not supported yet` ;
18294 }
0 commit comments