@@ -31,18 +31,144 @@ var __spread = (this && this.__spread) || function () {
31
31
return ar ;
32
32
} ;
33
33
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
34
- exports . toValue = exports . formatData = exports . parseBody = exports . parseData = void 0 ;
34
+ exports . toValue = exports . formatData = exports . parseBody = exports . parseData = exports . checkLength = exports . validSign = exports . filterData = void 0 ;
35
35
var lodash_1 = require ( "lodash" ) ;
36
36
var rule_judgment_1 = require ( "rule-judgment" ) ;
37
- function parseData ( options , customize ) {
37
+ var MD5 = require ( "md5.js" ) ;
38
+ function filterData ( options , customize ) {
38
39
return function ( data ) {
39
40
var e_1 , _a ;
41
+ var values = { } ;
42
+ try {
43
+ for ( var options_1 = __values ( options ) , options_1_1 = options_1 . next ( ) ; ! options_1_1 . done ; options_1_1 = options_1 . next ( ) ) {
44
+ var item = options_1_1 . value ;
45
+ var key = item . key , type = item . type , rules = item . rules , format = item . format , defaultValue = item . defaultValue , md5 = item . md5 , separator = item . separator ;
46
+ var value = data [ key ] ;
47
+ if ( / \[ \] $ / . test ( type ) && ! lodash_1 . isArray ( value ) ) {
48
+ value = toValue ( 'string' ) ( value || '' ) . split ( separator || / \, / ) ;
49
+ }
50
+ if ( / \[ \] $ / . test ( type ) && lodash_1 . isArray ( value ) ) {
51
+ var _b = __read ( type . match ( / ( \S + ) ( \[ \] ) $ / ) , 2 ) , itype = _b [ 1 ] ;
52
+ value = lodash_1 . compact ( value ) . map ( toValue ( itype ) ) ;
53
+ rules && value . forEach ( validateRule ( rules , customize ) ) ;
54
+ if ( defaultValue && value . length === 0 ) {
55
+ value = defaultValue ;
56
+ }
57
+ if ( format ) {
58
+ value = value . map ( formatData ( format , customize ) ) ;
59
+ }
60
+ }
61
+ else {
62
+ value = toValue ( type ) ( value ) ;
63
+ rules && validateRule ( rules , customize ) ( value ) ;
64
+ value = value || defaultValue ;
65
+ if ( format ) {
66
+ value = formatData ( format , customize ) ( value ) ;
67
+ }
68
+ if ( md5 ) {
69
+ value = new MD5 ( ) . update ( lodash_1 . template ( md5 ) ( values ) ) . digest ( 'hex' ) ;
70
+ }
71
+ }
72
+ lodash_1 . set ( values , key , value ) ;
73
+ }
74
+ }
75
+ catch ( e_1_1 ) { e_1 = { error : e_1_1 } ; }
76
+ finally {
77
+ try {
78
+ if ( options_1_1 && ! options_1_1 . done && ( _a = options_1 . return ) ) _a . call ( options_1 ) ;
79
+ }
80
+ finally { if ( e_1 ) throw e_1 . error ; }
81
+ }
82
+ return values ;
83
+ } ;
84
+ }
85
+ exports . filterData = filterData ;
86
+ function validSign ( options , sign ) {
87
+ if ( sign === void 0 ) { sign = 'sign' ; }
88
+ return function ( data ) {
89
+ var md5 = new MD5 ( ) . update ( lodash_1 . template ( options ) ( data ) ) . digest ( 'hex' ) ;
90
+ return data [ sign ] === md5 ;
91
+ } ;
92
+ }
93
+ exports . validSign = validSign ;
94
+ function validateRule ( rules , customize ) {
95
+ return function ( value ) {
96
+ var e_2 , _a ;
97
+ try {
98
+ for ( var rules_1 = __values ( rules ) , rules_1_1 = rules_1 . next ( ) ; ! rules_1_1 . done ; rules_1_1 = rules_1 . next ( ) ) {
99
+ var rule = rules_1_1 . value ;
100
+ var required = rule . required , message = rule . message , min = rule . min , max = rule . max , pattern = rule . pattern , validator = rule . validator ;
101
+ if ( required && ( lodash_1 . isUndefined ( value ) || value === '' ) ) {
102
+ throw new Error ( message ) ;
103
+ }
104
+ if ( lodash_1 . isString ( value ) ) {
105
+ if ( min && checkLength ( value ) < min ) {
106
+ throw new Error ( message ) ;
107
+ }
108
+ if ( max && checkLength ( value ) > max ) {
109
+ throw new Error ( message ) ;
110
+ }
111
+ if ( pattern ) {
112
+ var reg = getRegexp ( pattern ) ;
113
+ if ( ! reg . test ( value ) ) {
114
+ throw new Error ( message ) ;
115
+ }
116
+ }
117
+ if ( validator && lodash_1 . isString ( validator ) ) {
118
+ if ( customize && Object . keys ( customize ) . includes ( validator ) ) {
119
+ validator = customize [ validator ] ;
120
+ }
121
+ }
122
+ if ( validator && lodash_1 . isFunction ( validator ) ) {
123
+ if ( ! validator ( value ) ) {
124
+ throw new Error ( message ) ;
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ catch ( e_2_1 ) { e_2 = { error : e_2_1 } ; }
131
+ finally {
132
+ try {
133
+ if ( rules_1_1 && ! rules_1_1 . done && ( _a = rules_1 . return ) ) _a . call ( rules_1 ) ;
134
+ }
135
+ finally { if ( e_2 ) throw e_2 . error ; }
136
+ }
137
+ } ;
138
+ }
139
+ function checkLength ( str ) {
140
+ var e_3 , _a ;
141
+ var size = 0 ;
142
+ if ( lodash_1 . isNull ( str ) )
143
+ return size ;
144
+ var arr = str . split ( '' ) ;
145
+ try {
146
+ for ( var arr_1 = __values ( arr ) , arr_1_1 = arr_1 . next ( ) ; ! arr_1_1 . done ; arr_1_1 = arr_1 . next ( ) ) {
147
+ var word = arr_1_1 . value ;
148
+ size ++ ;
149
+ ( / [ ^ \x00 - \xff ] / g. test ( word ) ) && size ++ ;
150
+ }
151
+ }
152
+ catch ( e_3_1 ) { e_3 = { error : e_3_1 } ; }
153
+ finally {
154
+ try {
155
+ if ( arr_1_1 && ! arr_1_1 . done && ( _a = arr_1 . return ) ) _a . call ( arr_1 ) ;
156
+ }
157
+ finally { if ( e_3 ) throw e_3 . error ; }
158
+ }
159
+ return size ;
160
+ }
161
+ exports . checkLength = checkLength ;
162
+ function parseData ( options , customize ) {
163
+ return function ( data ) {
164
+ var e_4 , _a ;
40
165
if ( ! options )
41
166
return data ;
42
167
var separator = options . separator , collection = options . collection , omits = options . omits ;
43
168
var list = data . split ( separator ) ;
169
+ var notResults = collection . filter ( rule_judgment_1 . default ( { result : { $exists : false } } ) ) ;
44
170
var values = list . map ( function ( v , i ) {
45
- var _a = collection [ i ] || { } , type = _a . type , format = _a . format ;
171
+ var _a = notResults [ i ] || { } , type = _a . type , format = _a . format ;
46
172
var value = formatData ( format , customize ) ( toValue ( type ) ( v ) ) ;
47
173
return value ;
48
174
} ) ;
@@ -54,12 +180,12 @@ function parseData(options, customize) {
54
180
lodash_1 . set ( obj , item . key , formatData ( item . format , customize ) ( getResultValue ( item . result , customize ) ( obj ) ) ) ;
55
181
}
56
182
}
57
- catch ( e_1_1 ) { e_1 = { error : e_1_1 } ; }
183
+ catch ( e_4_1 ) { e_4 = { error : e_4_1 } ; }
58
184
finally {
59
185
try {
60
186
if ( results_1_1 && ! results_1_1 . done && ( _a = results_1 . return ) ) _a . call ( results_1 ) ;
61
187
}
62
- finally { if ( e_1 ) throw e_1 . error ; }
188
+ finally { if ( e_4 ) throw e_4 . error ; }
63
189
}
64
190
return lodash_1 . omit ( obj , omits || [ ] ) ;
65
191
} ;
@@ -93,7 +219,7 @@ function parseBody(options, customize) {
93
219
exports . parseBody = parseBody ;
94
220
function formatData ( formats , customize ) {
95
221
return function ( value ) {
96
- var e_2 , _a ;
222
+ var e_5 , _a ;
97
223
formats = lodash_1 . isArray ( formats ) ? formats : lodash_1 . compact ( [ formats ] ) ;
98
224
if ( formats . length === 0 )
99
225
return value ;
@@ -103,12 +229,12 @@ function formatData(formats, customize) {
103
229
value = formatUtil ( format , customize ) ( value ) ;
104
230
}
105
231
}
106
- catch ( e_2_1 ) { e_2 = { error : e_2_1 } ; }
232
+ catch ( e_5_1 ) { e_5 = { error : e_5_1 } ; }
107
233
finally {
108
234
try {
109
235
if ( formats_1_1 && ! formats_1_1 . done && ( _a = formats_1 . return ) ) _a . call ( formats_1 ) ;
110
236
}
111
- finally { if ( e_2 ) throw e_2 . error ; }
237
+ finally { if ( e_5 ) throw e_5 . error ; }
112
238
}
113
239
return value ;
114
240
} ;
@@ -224,7 +350,7 @@ function toValue(type) {
224
350
}
225
351
}
226
352
else {
227
- if ( type === 'string' ) {
353
+ if ( type === 'string' && ! lodash_1 . isUndefined ( value ) ) {
228
354
val = lodash_1 . isPlainObject ( value ) ? JSON . stringify ( value ) : String ( value ) ;
229
355
}
230
356
else if ( type === 'date' && lodash_1 . isNumber ( value ) ) {
0 commit comments