@@ -48,26 +48,36 @@ class Table extends StringUDF {
48
48
super ( )
49
49
}
50
50
51
+ cb ( replyError , txt ) {
52
+ if ( replyError ) {
53
+ return Promise . reject ( txt ) ;
54
+ } else {
55
+ return 'NA' ;
56
+ }
57
+ }
58
+
51
59
// ************************************************************************************************
52
60
// convertToTable
53
61
//
54
62
// This will convert string/object/array into a tabular format.
55
63
// It will have 7 arguments.
56
64
57
- // convertToTable('1,2,3,4',null,false,false ) ;//Output will be - 1|2|3|4
65
+ // convertToTable('1,2,3,4',null,false) ;//Output will be - 1|2|3|4
58
66
// convertToTable([[1.12,2,3,4]],null,false,false,"|",2) ;//Output will be - 1.12|2.00|3.00|4.00
59
- // convertToTable('1-2-3-4',null,false,false, "||",0,"-") ;//Output will be - 1||2||3||4
60
- // convertToTable([[1,2,3,4]],null,false,false ) ;//Output will be - 1|2|3|4
67
+ // convertToTable('1-2-3-4',null,false,"||",0,"-") ;//Output will be - 1||2||3||4
68
+ // convertToTable([[1,2,3,4]],null,false) ;//Output will be - 1|2|3|4
61
69
// convertToTable([[1,2,3,4]],['col1','col2','col3','col4'],false,false) ;//Output will be following
62
70
// col1|col2|col3|col4
63
71
// -------------------
64
72
// 1 |2 |3 |4
73
+ // convertToTable(sqlResult,['col1','col2','col3','col4']) ;//Direct sql result also can be converted.
65
74
// ************************************************************************************************
66
- convertToTable = ( array_for_table , hdr = null , isObj = true , isArrayReturn = false , sep = '|' , decimalLengths = 0 , stringSplitter = "," , bunkColumn = 0 , isfixedformat = true ) => {
75
+ convertToTable = ( array_for_table , hdr = null , isObj = true , isArrayReturn = false , sep = '|' , decimalLengths = 0 , stringSplitter = "," , bunkColumn = 0 , isfixedformat = true , replyError = true ) => {
76
+ let _this = this ;
67
77
try {
68
78
let array = isObj ? convert_obj_arr ( array_for_table ) : Array . isArray ( array_for_table ) ? parse_copy ( array_for_table ) : [ array_for_table . split ( stringSplitter ) ] ;
69
- if ( array . length == 0 )
70
- return Promise . reject ( 'Invalid data passed in 1st argument.' ) ;
79
+ if ( array . length == 0 ) return _this . cb ( replyError , 'Invalid data passed in 1st argument.' )
80
+ // return Promise.reject('Invalid data passed in 1st argument.');
71
81
72
82
//slice column
73
83
if ( bunkColumn > 0 ) {
@@ -78,7 +88,9 @@ class Table extends StringUDF {
78
88
let col_length = JSON . parse ( JSON . stringify ( array ) ) ;
79
89
80
90
let total_cols = col_length [ 0 ] . length ;
81
- if ( col_length [ 0 ] . constructor !== Array ) return Promise . reject ( "Input is invalid for table conversion." )
91
+ if ( col_length [ 0 ] . constructor !== Array ) return _this . cb ( replyError , "Input is invalid for table conversion." )
92
+
93
+ //Promise.reject("Input is invalid for table conversion.")
82
94
83
95
//negative values arr
84
96
let col_negative = [ ...get_negative ( col_length , total_cols ) ] ;
@@ -88,18 +100,15 @@ class Table extends StringUDF {
88
100
89
101
//find max each col
90
102
if ( hdr != null ) {
91
- if ( ! Array . isArray ( hdr ) ) return Promise . reject ( "Header can be either null or an array" ) ;
92
- if ( hdr . length != col_length [ 0 ] . length ) return Promise . reject ( "Header column count mismatched." ) ;
103
+ if ( ! Array . isArray ( hdr ) ) return _this . cb ( replyError , "Header can be either null or an array" ) ;
104
+ if ( hdr . length != col_length [ 0 ] . length ) return _this . cb ( replyError , "Header column count mismatched." ) ;
93
105
94
106
col_length . push ( hdr ) ;
95
107
}
96
108
97
109
let col_length_arr = col_length . map ( ( r ) => r . map ( ( c ) => lengths ( c , decimalLengths ) ) ) ;
98
110
let col_max = [ ...max_string_lengths ( col_length_arr , total_cols ) ] ;
99
111
100
- // console.log(col_negative, col_positive, col_length_arr, col_max);
101
-
102
-
103
112
const format_row = ( arrayValue , index ) => {
104
113
var rowTxt = arrayValue ;
105
114
@@ -133,7 +142,7 @@ class Table extends StringUDF {
133
142
134
143
let space_arr = _space_arr . map ( ( r ) => map_arr ( r ) ) ;
135
144
136
- //add hdr
145
+ //add header
137
146
if ( hdr != null ) {
138
147
let _hdr = map_arr ( hdr ) ;
139
148
let find_max_length = Math . max ( ...space_arr . map ( r => r . length ) , _hdr . length ) ;
@@ -146,7 +155,7 @@ class Table extends StringUDF {
146
155
final_table = isfixedformat ? `<code>${ final_table } </code>` : final_table ;
147
156
return final_table ;
148
157
} catch ( e ) {
149
- return Promise . reject ( e ) ;
158
+ return _this . cb ( replyError , e ) ;
150
159
}
151
160
}
152
161
}
0 commit comments