
Product
Reachability for Ruby Now in Beta
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.
Find out what the function you need
npm install wtf
Synchronous search is simple, fast and the only one supporting preloaded modules. Downside is that if it hangs - your thread will too.
const lodash = require('lodash')
const wtf = require('wtf')
const print = ({ result, display }) => console.log(`${result} ≈ ${display}`)
wtf.sync({ lodash },
['apple', 'p'], true,
['apple', 'x'], false
).map(print)
Not implemented yet
const wtf = require('wtf')
const print = ({ result, display }) => display && console.log(`${result} ≈ ${display}`)
wtf.webWorker('lodash',
['apple', 'p'], true,
['apple', 'x'], false
).map(print)
Prints results to the console.
const lodash = require('lodash')
const wtf = require('wtf')
wtf({ lodash },
['apple', 'p'], true,
['apple', 'x'], false
)
You can pass snippets as an array of elements of form { func, display }. func is a functions to check. display is a function that generates display string.
Snippet for addition can be defined this way:
const snippets = [ { func: (a, b) => a + b, display: (a, b) => `${a} + ${b}` } ]
wtf({ snippets }, [ 2, 3 ], 5)
// 5 ≈ 2 + 3
Object, Array, Date, String and RegExp are handled little differently when passed as module to look in. Their prototypes are inspected and found functions are added to the search. It means that besides obvious
wtf({ Array }, [1, 2, 3], [1, 2, 3])
// [1, 2, 3] ≈ Array.of(1, 2, 3)
...you will be able to do:
wtf({ Array }, [ [ 'a', 'b', 'c' ] ], 3)
// 3 ≈ [ 'a', 'b', 'c' ].length
// 3 ≈ [ 'a', 'b', 'c' ].push()
// 3 ≈ [ 'a', 'b', 'c' ].unshift()
You can optionally send functions as the expected results to test the results.
const lodash = require('lodash')
const wtf = require('wtf')
wtf({ lodash },
[10, 20], x => x > 25
)
Results can be functions that will receive the result and return whether it equals.
This is helpful for libraries like ramda that returns a function that satisfies something you'd like to test.
const ramda = require('ramda')
const wtf = require('wtf')
wtf({ ramda },
[a => a * 2, a => a + 1], fn => typeof fn === 'function' && fn(2) === 6
) // will print `ramda.compose`
MIT © Vladimir Danchenkov
FAQs
Find out what the function you need
We found that wtf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.

Research
/Security News
Malicious npm packages use Adspect cloaking and fake CAPTCHAs to fingerprint visitors and redirect victims to crypto-themed scam sites.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.