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

npm install function-extractor
2 downloads in the last day
13 downloads in the last week
26 downloads in the last month

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 covers Coffeescript.

Used by Panino and Biscotto to report doc coverage.


npm install function-extractor


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

var fs = require("fs");
var functionExtractor = require("function-extractor");

var source = fs.readFileSync("./sample.js", "utf8")

var functions = functionExtractor.parse(source);

where source is the text read from your Javascript file. You can also pass {coffeescript: true} if your source file is a Coffeescript file.

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

var functionExtractor = require("function-extractor");

var functions = functionExtractor.interpret(ast);

where ast is the Esprima.parse() result. Note that you must pass the range and loc options to Esprima.

npm loves you