function-to-string
v0.2.0
Published
Extract parameters and body of a function into strings
Readme
function-to-string 
Extract parameters and body of a function into strings
This was built as part of the gifsockets project to pass arbitrary canvas commands with a callback to a rgba generating PhantomJS server.
Getting Started
Install the module with: npm install function-to-string
var functionToString = require('function-to-string');
functionToString(function hello(world) {
// This is a comment
return 'some text';
});
// Returns:
{
name: 'hello',
params: ['world'],
body: '\n // This is a comment\n return \'some text\';\n'
}Documentation
We chose to use esprima over regular expression magic. If you are interested in the regular expression route, checkout AngularJS' source code
functionToString exposes a single function
functionToString(fn)
/**
* Parses function into AST, extracts parameters and body, and returns information
* @param {Function} fn Function to parse
* @returns {Object} retObj
* @returns {String} retObj.name Name of `fn`
* @returns {String[]} retObj.params Array of parameters for `fn`
* @returns {String} retObj.body Content of `fn`
*/Reconstructing a function
Functions can be reconstructed via the Function constructor:
var info = {
name: 'hello',
params: ['world'],
body: '\n // This is a comment\n return \'some text\';\n'
};
var hello = Function.apply({}, info.params.concat([info.body]));
console.log(hello()); // 'some text'Donating
Support this project and others by twolfson via gittip.
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint via grunt and test via npm test.
Unlicense
As of Nov 16 2013, Todd Wolfson has released this repository and its contents to the public domain.
It has been released under the UNLICENSE.

