Extracts all the functions from a Javascript or Coffeescript file into an array of objects.


Provides an array of objects listing the names and types of functions found in a Javascript file.

Based on fn-extractor, except this one works with the latest Esprima, catches more corner cases, reports errors, and isn't in Coffeescript.

Used by Panino to report doc coverage.


npm install function-extractor


Esprima is required by this tool.

You can use this module in two ways. If you don't already have an Esprima AST of your code, do this:

var functionExtractor = require("./javascript/jsd/function_extractor");
var functions = functionExtractor.parse(source);

where source is the text read from your Javascript file.

Otherwise, if you've already parsed the file, do this:

var functionExtractor = require("./javascript/jsd/function_extractor");
var functions = functionExtractor.parse(source, ast);

where source is the text read from your Javascript file, and ast is the Esprima.parse() result. Note that you must pass the range and loc options to Esprima.