A CLI script that takes a position in a JS file inside an npm package, and outputs a directed graph of all of the functions that call the function at that position.

My provenance setup requires:
I wrote this so I could mash <Leader>sx and get a quick heads up display of
what calls the function I'm looking at. To that end, I wrote a script to store
stdin as a tempfile and use qlmanage to quickly display it:
#!/bin/bash
# call this file "ql" and `chmod +x` it
tmpfile=$(mktemp -t ql)
mv "$tmpfile"{,.png}
tmpfile=${tmpfile}.png
cat > "$tmpfile"
qlmanage -p $tmpfile >& /dev/null
rm $tmpfile
With that file on $PATH as ql, I added the following info to my .vimrc:
" ~/.vimrc
nmap <leader>sx :exe "!iojs /path/to/provenance/bin/provenance % " . line(".") . " " . col(".") . "\| dot -Tpng \| ql" <CR>
Provenance trys to note all calling paths into your current function.
ioc) calls, though it sometimes
misses.obj[something]().package.json at the root of your project to build a list
of files to look at. If your file is not indirectly required by the "main"
script of your package.json, it may not produce useful output.MIT