parse-js 0.24.0

JavaScript parsing library
Documentation
{
  "$t": "ArrowFunctionExpr",
  "function": {
    "$t": "Function",
    "arrow": true,
    "async_": false,
    "body": {
      "$t": "ArrowFunctionExpr",
      "function": {
        "$t": "Function",
        "arrow": true,
        "async_": false,
        "body": {
          "$t": "ConditionalExpr",
          "alternate": {
            "$t": "LiteralNumberExpr",
            "value": 5.0
          },
          "consequent": {
            "$t": "ConditionalExpr",
            "alternate": {
              "$t": "LiteralNumberExpr",
              "value": 4.0
            },
            "consequent": {
              "$t": "LiteralNumberExpr",
              "value": 3.0
            },
            "parenthesised": false,
            "test": {
              "$t": "CallExpr",
              "arguments": [],
              "callee": {
                "$t": "ArrowFunctionExpr",
                "function": {
                  "$t": "Function",
                  "arrow": true,
                  "async_": false,
                  "body": {
                    "$t": "LiteralNumberExpr",
                    "value": 2.0
                  },
                  "generator": false,
                  "parameters": [
                    {
                      "$t": "ParamDecl",
                      "default_value": null,
                      "pattern": {
                        "$t": "IdentifierPattern",
                        "name": "y"
                      },
                      "rest": false
                    }
                  ]
                },
                "parenthesised": true
              },
              "optional_chaining": false,
              "parenthesised": false
            }
          },
          "parenthesised": false,
          "test": {
            "$t": "LiteralNumberExpr",
            "value": 1.0
          }
        },
        "generator": false,
        "parameters": [
          {
            "$t": "ParamDecl",
            "default_value": null,
            "pattern": {
              "$t": "IdentifierPattern",
              "name": "x"
            },
            "rest": false
          }
        ]
      },
      "parenthesised": false
    },
    "generator": false,
    "parameters": [
      {
        "$t": "ParamDecl",
        "default_value": null,
        "pattern": {
          "$t": "IdentifierPattern",
          "name": "a"
        },
        "rest": false
      },
      {
        "$t": "ParamDecl",
        "default_value": null,
        "pattern": {
          "$t": "IdentifierPattern",
          "name": "b"
        },
        "rest": false
      },
      {
        "$t": "ParamDecl",
        "default_value": null,
        "pattern": {
          "$t": "IdentifierPattern",
          "name": "c"
        },
        "rest": false
      }
    ]
  },
  "parenthesised": false
}