1.1.0 • Published 4 years ago
funckey v1.1.0
— funckey
—
Documentation
Function-valued properties of objects as dot-separated/array paths.
Installation
Run npm install funckey
Inclusion
ESWhatever:
import funckey from 'funckey'
CommonJS:
const funckey = require('funckey').default
Usage
Module exports a unary function accepting an object with named parameters as follows:
Argument | Type/Default | Required | Description |
---|---|---|---|
obj | Object | Yes | The object to search for functions |
prefix | String = '' | No | A prefix to add to found paths |
arrayMode | Boolean = false | No | Whether to return paths as arrays instead of dot-separated strings. See symbNames . |
symbNames | Boolean = false | No | Whether to search own property symbols. If true, arrayMode enabled by default. |
propNames | Boolean = false | No | Whether to search own property names |
all | Boolean = false | No | If true, include own property names and own property symbols |
excludes | Array = [] | No | Object references to exclude from traversal (i.e., circular references) |
excludeKeys | Array = 'prototype' | No | Keyed references to exclude from traversal |
Find enumerable functions in an object as dot-paths:
const fixture0 = {
n(){},
o: {
a: ()=>{},
b:3,
c: {
d(){},
e: 4
}
}
}
funckey({obj: fixture0})
// ['n', 'o.a', 'o.c.d']
Find functions in a nested object as array path lists:
const fixture1 = {
n(){},
o: {
a: ()=>{},
b:3,
c: {
d(){},
e: 4
}
}
}
funckey({obj: fixture1, arrayMode: true})
// [['n'], ['o', 'a'], ['o', 'c', 'd'] ]
Find the function paths associated with the native Array object (ignoring prototype
subpaths):
funcKey({obj: Array, propNames: true}) // [ 'isArray', 'from', 'of' ]
Find string
- and symbol
-keyed function pathss using all
option:
const fixture2 = {
a: 3,
b(){},
[Symbol.for('c')]: {
ca: ()=>{},
[Symbol.for('cb')]: ()=>{},
cc: 'no'
},
d: {
da () {},
[Symbol.for('db')]:()=>{},
dc: 33
}
}
funckey({obj: fixture2, all:true})
// [
// [ 'b' ],
// [ 'd', 'da' ],
// [ 'd', Symbol(db) ],
// [ Symbol(c), 'ca' ],
// [ Symbol(c), Symbol(cb) ]
// ]
Testing
npm test