parse-js 0.21.0

JavaScript parsing library
Documentation
{
  "$t": "VarDecl",
  "declarators": [
    {
      "initializer": {
        "$t": "LiteralObjectExpr",
        "members": [
          {
            "$t": "ObjectMember",
            "typ": {
              "Valued": {
                "key": {
                  "Direct": "get"
                },
                "value": {
                  "Property": {
                    "initializer": {
                      "$t": "LiteralArrayExpr",
                      "elements": [
                        {
                          "Single": {
                            "$t": "IdentifierExpr",
                            "name": "set"
                          }
                        },
                        {
                          "Single": {
                            "$t": "IdentifierExpr",
                            "name": "get"
                          }
                        },
                        {
                          "Single": {
                            "$t": "IdentifierExpr",
                            "name": "await"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "pattern": {
        "$t": "IdentifierPattern",
        "name": "set"
      }
    },
    {
      "initializer": null,
      "pattern": {
        "$t": "IdentifierPattern",
        "name": "of"
      }
    },
    {
      "initializer": {
        "$t": "LiteralObjectExpr",
        "members": [
          {
            "$t": "ObjectMember",
            "typ": {
              "Shorthand": {
                "identifier": {
                  "$t": "IdentifierExpr",
                  "name": "await"
                }
              }
            }
          },
          {
            "$t": "ObjectMember",
            "typ": {
              "Shorthand": {
                "identifier": {
                  "$t": "IdentifierExpr",
                  "name": "of"
                }
              }
            }
          },
          {
            "$t": "ObjectMember",
            "typ": {
              "Shorthand": {
                "identifier": {
                  "$t": "IdentifierExpr",
                  "name": "let"
                }
              }
            }
          }
        ]
      },
      "pattern": {
        "$t": "ObjectPattern",
        "properties": [
          {
            "$t": "ObjectPatternProperty",
            "default_value": null,
            "key": {
              "Direct": "get"
            },
            "target": {
              "$t": "IdentifierPattern",
              "name": "get"
            },
            "shorthand": true
          },
          {
            "$t": "ObjectPatternProperty",
            "default_value": null,
            "key": {
              "Direct": "set"
            },
            "target": {
              "$t": "IdentifierPattern",
              "name": "set"
            },
            "shorthand": true
          },
          {
            "$t": "ObjectPatternProperty",
            "default_value": null,
            "key": {
              "Direct": "yield"
            },
            "target": {
              "$t": "ArrayPattern",
              "elements": [
                {
                  "default_value": null,
                  "target": {
                    "$t": "IdentifierPattern",
                    "name": "await"
                  }
                },
                {
                  "default_value": null,
                  "target": {
                    "$t": "IdentifierPattern",
                    "name": "of"
                  }
                }
              ],
              "rest": null
            }
          }
        ],
        "rest": null
      }
    },
    {
      "initializer": {
        "$t": "IdentifierExpr",
        "name": "let"
      },
      "pattern": {
        "$t": "IdentifierPattern",
        "name": "await"
      }
    },
    {
      "initializer": null,
      "pattern": {
        "$t": "IdentifierPattern",
        "name": "yield"
      }
    }
  ],
  "mode": "Var"
}