11var parserMgr = require ( "./parserMgr.js" ) ;
2- var Parser = require ( "./parser" ) ;
32var CSVError = require ( "./CSVError" ) ;
43var numReg = / ^ [ - + ] ? [ 0 - 9 ] * \. ? [ 0 - 9 ] + ( [ e E ] [ - + ] ? [ 0 - 9 ] + ) ? $ / ;
54/**
@@ -48,18 +47,9 @@ function processRows(csvRows, params, startIndex) {
4847 return res ;
4948}
5049
51- function getConstParser ( number , param ) {
52- var inst = new Parser ( "field" + number , / .* / , function ( params ) {
53- var name = this . getName ( ) ;
54- params . resultRow [ name ] = params . item ;
55- } , true ) ;
56- inst . setParam ( param ) ;
57- return inst ;
58- }
59-
6050function processRow ( row , param , index ) {
6151 var parseRules = param . parseRules ;
62- if ( param . checkColumn && row . length != parseRules . length ) {
52+ if ( param . checkColumn && row . length !== parseRules . length ) {
6353 return {
6454 err : CSVError . column_mismatched ( index )
6555 } ;
@@ -91,14 +81,9 @@ function convertRowToJson(row, headRow, param) {
9181 }
9282 hasValue = true ;
9383
94- // parser = parseRules[i];
95- // if (!parser) {
96- // parser = parseRules[i] = getConstParser(i + 1, param);
97- // }
9884 head = headRow [ i ] ;
9985 if ( ! head || head === "" ) {
10086 head = headRow [ i ] = "field" + ( i + 1 ) ;
101- // parser.initHead(head);
10287 }
10388 var flag = getFlag ( head , i , param ) ;
10489 if ( flag === 'omit' ) {
@@ -114,16 +99,6 @@ function convertRowToJson(row, headRow, param) {
11499 } else {
115100 setPath ( resultRow , title , item ) ;
116101 }
117- // _.set(resultRow,head,item)
118- // parser.parse({
119- // head: head,
120- // item: item,
121- // itemIndex: i,
122- // rawRow: row,
123- // resultRow: resultRow,
124- // rowIndex: index,
125- // config: param || {}
126- // });
127102 }
128103 if ( hasValue ) {
129104 return resultRow ;
@@ -145,41 +120,37 @@ function setPath(json, path, value) {
145120function getFlag ( head , i , param ) {
146121 if ( typeof param . _headerFlag [ i ] === "string" ) {
147122 return param . _headerFlag [ i ] ;
123+ } else if ( head . indexOf ( '*omit*' ) > - 1 ) {
124+ return param . _headerFlag [ i ] = 'omit' ;
125+ } else if ( head . indexOf ( '*flat*' ) > - 1 ) {
126+ return param . _headerFlag [ i ] = 'flat' ;
148127 } else {
149- if ( head . indexOf ( '*omit*' ) > - 1 ) {
150- return param . _headerFlag [ i ] = 'omit' ;
151- } else if ( head . indexOf ( '*flat*' ) > - 1 ) {
152- return param . _headerFlag [ i ] = 'flat' ;
153- } else {
154- return param . _headerFlag [ i ] = '' ;
155- }
128+ return param . _headerFlag [ i ] = '' ;
156129 }
157130}
158131
159132function getTitle ( head , i , param ) {
160133 if ( param . _headerTitle [ i ] ) {
161134 return param . _headerTitle [ i ] ;
162- } else {
163- var flag = getFlag ( head , i , param ) ;
164- var str = head . replace ( flag , '' ) ;
165- str = str . replace ( 'string#!' , '' ) . replace ( 'number#!' , '' ) ;
166- return param . _headerTitle [ i ] = str ;
167135 }
136+
137+ var flag = getFlag ( head , i , param ) ;
138+ var str = head . replace ( flag , '' ) ;
139+ str = str . replace ( 'string#!' , '' ) . replace ( 'number#!' , '' ) ;
140+ return param . _headerTitle [ i ] = str ;
168141}
169142
170143function checkType ( item , head , headIdx , param ) {
171144 if ( param . _headerType [ headIdx ] ) {
172145 return param . _headerType [ headIdx ] ;
146+ } else if ( head . indexOf ( 'number#!' ) > - 1 ) {
147+ return param . _headerType [ headIdx ] = numberType ;
148+ } else if ( head . indexOf ( 'string#!' ) > - 1 ) {
149+ return param . _headerType [ headIdx ] = stringType ;
150+ } else if ( param . checkType ) {
151+ return param . _headerType [ headIdx ] = dynamicType ;
173152 } else {
174- if ( head . indexOf ( 'number#!' ) > - 1 ) {
175- return param . _headerType [ headIdx ] = numberType ;
176- } else if ( head . indexOf ( 'string#!' ) > - 1 ) {
177- return param . _headerType [ headIdx ] = stringType ;
178- } else if ( param . checkType ) {
179- return param . _headerType [ headIdx ] = dynamicType ;
180- } else {
181- return param . _headerType [ headIdx ] = stringType ;
182- }
153+ return param . _headerType [ headIdx ] = stringType ;
183154 }
184155}
185156
@@ -206,7 +177,6 @@ function dynamicType(item) {
206177 return booleanType ( item ) ;
207178 } else if ( trimed [ 0 ] === "{" && trimed [ trimed . length - 1 ] === "}" || trimed [ 0 ] === "[" && trimed [ trimed . length - 1 ] === "]" ) {
208179 return jsonType ( item ) ;
209-
210180 } else {
211181 return stringType ( item ) ;
212182 }
@@ -228,25 +198,3 @@ function jsonType(item) {
228198 return item ;
229199 }
230200}
231- // function dynamicType(item) {
232- // var trimed = item.trim();
233- // if (trimed === "") {
234- // return trimed;
235- // }
236- // if (!isNaN(trimed)) {
237- // return parseFloat(trimed);
238- // } else if (trimed.length === 5 && trimed.toLowerCase() === "false") {
239- // return false;
240- // } else if (trimed.length === 4 && trimed.toLowerCase() === "true") {
241- // return true;
242- // } else if (trimed[0] === "{" && trimed[trimed.length - 1] === "}" || trimed[0] === "[" && trimed[trimed.length - 1] === "]") {
243- // try {
244- // return JSON.parse(trimed);
245- // } catch (e) {
246- // return item;
247- // }
248- // } else {
249- // return item;
250-
251- // }
252- // }
0 commit comments