🚀 DAY 1 OF LAUNCH WEEK: Reachability for Ruby Now in Beta.Learn more
Socket
Book a DemoInstallSign in
Socket

wtf

Package Overview
Dependencies
Maintainers
2
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wtf

Find out what the function you need

latest
Source
npmnpm
Version
1.5.0
Version published
Maintainers
2
Created
Source

wtf

NPM Version Coverage Status Build Status Downloads Dependency Status License

Find out what the function you need

Install

npm install wtf

Usage

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)

Web worker

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)

Shortcut

Prints results to the console.

const lodash = require('lodash')
const wtf = require('wtf')

wtf({ lodash },
  ['apple', 'p'], true,
  ['apple', 'x'], false
)

Snippets

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

Search in built-in global objects

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()

Function testers

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
)

Curried functions or closures

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`

License

MIT © Vladimir Danchenkov

Keywords

wtf search

FAQs

Package last updated on 05 Oct 2016

Did you know?

Socket

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.

Install

Related posts