inspect-function

0.4.0 • Public • Published

inspect-function

Build Status npm npm

Inspects a function and returns informations about it (e.g. name, parameters names, parameters and default values, signature). Useful when creating automated tasks, e.g., docs generations.

Installation

npm install inspect-function

CLI

npm install inspect-function -g
npx inspect-function --help

Usage

inspectFunction(fn, name);

// The module
const inspectFunction = require('inspect-function');
 
// A function
const testFunction = (a = 'z', b = [1,2,3], c, {d,e: {f}, g} = {}) => console.log('noop');
 
// Inspects
const result = inspectFunction(testFunction);
 
////////////////////////
// `result` will be:  //
////////////////////////
{
    "name": "testFunction",
    "signature": "testFunction(a = 'z', b = [1,2,3], c, {d,e: {f}, g} = {});",
    "parameters": [
        {
            "parameter": "a",
            "defaultValue": "z",
            "declaration": "a = 'z'"
        },
        {
            "parameter": "b",
            "defaultValue": "[1,2,3]",
            "declaration": "b = [1,2,3]"
        },
        {
            "parameter": "c",
            "declaration": "c"
        },
        {
            "parameter": "{d,e: {f}, g}",
            "defaultValue": "{}",
            "expectsDestructuring": true,
            "declaration": "{d,e: {f}, g} = {}",
            "destructuredParameters": [
                {
                    "parameter": "d",
                    "declaration": "d"
                },
                {
                    "parameter": "f",
                    "declaration": "f"
                },
                {
                    "parameter": "g",
                    "declaration": "g"
                }
            ]
        }
    ],
    "parametersNames": [
        "a",
        "b",
        "c",
        "d",
        "f",
        "g"
    ]
}

Package Sidebar

Install

npm i inspect-function

Weekly Downloads

191,119

Version

0.4.0

License

MIT

Unpacked Size

13.8 kB

Total Files

8

Last publish

Collaborators

  • diegozoracky