Walk version 4 provides support for all javascript primitive types including null
and undefined
.
Untill version 3, callback returns null
if value should be ignored. Walk v.4 provides argument constant IGNORE
. Return it if need to ignore. Returning of null
and undefined
will be treated as standard values.
//v.3
function someKeyCallback ({value, key, breadcrumbs }) {
if ( value == 'something' ) return null // will cancel
return value
}
// v.4
function someKeyCallback ({value, key, breadcrumbs, IGNORE }) {
if ( value == 'something' ) return IGNORE // will cancel
return value
}
That's all changes needed to move from v.3.x.x to v.4.x.x.
Major changes are related to moving from multiple arguments to named arguments.
const someData = { a: 12, b: ['one', 'two'] }
// old:
const result = walk ( someData )
// new:
const result = walk ({ data: someData })
Calling walk
with keyCallback
// old
// - first version:
const result = walk ( someData, keyCallbackFn )
// - second version:
const result = walk ( someData, [keyCallbackFn,null])
// new:
const result = walk ({ data:someData, keyCallback: keyCallbackFn })
Calling walk
with both callbacks:
//old:
const result = walk ( someData, [keyCallbackFn, objectCallbackFn])
// new:
const result = walk ({
data:someData
, keyCallback:keyCallbackFn
, objectCallback:objectCallbackFn
})
Definition for objectCallbacks:
// old
function callback ( obj, key, breadcrumbs ) {
//... some actions
}
// new
function callback ({ value, key, breadcrumbs }) {
//... some actions
}
Definition for keyCallbacks:
// old
function callback (value,key,breadcrumbs) {
//... some actions
}
function callback ({value,key,breadcrumbs}) {
//... some actions
}