File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 100100 switch ( key ) {
101101 case '$field' : return [ true , dig ( facts , value . $field ) ] ;
102102
103+ case '$clone' :
104+ var [ isValid , value ] = compileValue ( facts , value [ key ] ) ;
105+ if ( ! isValid )
106+ throw new Error ( 'Invalid property for clone: ' + key ) ;
107+ return [ true , _ . clone ( value ) ] ;
108+ case '$cloneDeep' :
109+ var [ isValid , value ] = compileValue ( facts , value [ key ] ) ;
110+ if ( ! isValid )
111+ throw new Error ( 'Invalid property for deep clone: ' + key ) ;
112+ return [ true , cloneDeep ( value ) ] ;
113+
103114 case '$minOf' :
104115 case '$maxOf' :
105116 case '$sumOf' :
199210 }
200211 }
201212
202- // FIXME? should this be isValid?
213+ // FIXME? should this be ` isValid?`
203214 return value !== undefined ? fact == value : checkConditions ( fact , subConds , true ) ;
204215 } ) ;
205216 } ;
213224 _ . each ( _ . isArray ( operations ) ? operations : [ operations ] , function ( subOps , i ) {
214225 if ( subOps . $each ) {
215226 return _ . each ( fact , function ( subFact , subKey ) {
216- if ( ! subOps . $where || checkConditions ( subFact , subOps . $where , true ) )
227+ if ( ! subOps . $where || checkConditions ( { item : subFact } , { item : subOps . $where } , true ) )
217228 updateFact ( facts , _ . isString ( subKey ) ? key + '.' + subKey : key + '[' + subKey + ']' , subOps . $each ) ;
218229 } ) ;
219230 }
You can’t perform that action at this time.
0 commit comments