reflection-js v2.2.2
Reflection / parsefunc is a reflection API for nodejs
Motivation
This is a very simple reflection API for javascript functions build on acorn. reflection-js is mostly designed to fit cnyks's needs.
PHPdoc/JSdoc
PHPdoc is part of PHP reflection API, that is, function described with this syntax can access their own comment. There is no standard way to attach a comment to a function in javascript. Esprima provide a way to parse the AST (and to retrieve comment) but we need a little more.
... enter the JSdoc syntax !
Attach a JSdoc to a javascript function
JSdoc pattern
foo.prototype.bar = function() /**
* This comment is valid and can describe the function behavior
* This syntax allow reflection API to work, as the comment will be serialized in the function body
*/ {
return 43;
}
class Bar {
async static bar() /**
* This comment is valid and can describe the function behavior
* This syntax allow reflection API to work, as the comment will be serialized in the function body
*/ {
return 43;
}
}
Usage
const parsefunc = require('reflection-js/parsefunc');
var heavyComputation = function (a, b = 1) /**
* This function computer bar
* @param {string} a Initial rotation speed
* @param {string} [b=1] this is foo
*/ {
return a + b;
};
console.log(parsefunc(heavyComputation));
{
"name": "heavyComputation",
"params": {
"a": {
"type": "string",
"descr": "Initial rotation speed",
"optional": false
},
"b": {
"type": "string",
"descr": "this is foo",
"value": "1",
"optional": true
}
},
"blocs": // all parsed @sections
"doc": [
"This function computer bar"
],
"jsdoc": // raw comment string
}
Credits
1 year ago
1 year ago
1 year ago
2 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
6 years ago
7 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago