function-names-at-line

Name the functions found at a particular line number in some JavaScript source

Usage no npm install needed!

<script type="module">
  import functionNamesAtLine from 'https://cdn.skypack.dev/function-names-at-line';
</script>

README

function-names-at-line

I was working on this run test by line number feature for teenytest, and needed a way to tell what functions might be described by a given line number.

For example, say you have this file:

                        // 1
var foo = function () { // 2
  var baz = 'lol'       // 3
  function bar () {}    // 4
}                       // 5
                        // 6

And read the file into a string named someSource, then you can:

var functionNamesAtLine = require('function-names-at-line')

functionNamesAtLine(someSource, 1) // []
functionNamesAtLine(someSource, 2) // ['foo']
functionNamesAtLine(someSource, 3) // ['foo']
functionNamesAtLine(someSource, 4) // ['bar', 'foo']
functionNamesAtLine(someSource, 5) // ['foo']
functionNamesAtLine(someSource, 6) // []

This is a pretty naive implementation, focused just on getting basic (not nested) names of functions.