{
  "classes": [
    {
      "constants": [],
      "types": [
        {
          "lua_type": "type ExceptionType = \"runtime\"\n    | \"assert\"\n    | \"thrown\"\n    | \"syntax\"\n    | \"require\"\n    | \"user\"\n    | \"interrupt\"\n    | \"system exit\"",
          "name": "ExceptionType",
          "tags": [],
          "source": {
            "path": "",
            "line": 11
          },
          "fields": [],
          "desc": ""
        },
        {
          "lua_type": "type Exception = {\n    message: string,\n    data: any?,\n    type: ExceptionType,\n    traceback: { ExceptionFrame },\n}",
          "name": "Exception",
          "tags": [],
          "source": {
            "path": "",
            "line": 13
          },
          "fields": [
            {
              "lua_type": "message: string",
              "name": "message",
              "desc": ""
            },
            {
              "lua_type": "data: any?",
              "name": "data",
              "desc": ""
            },
            {
              "lua_type": "type: ExceptionType",
              "name": "type",
              "desc": ""
            },
            {
              "lua_type": "traceback: { ExceptionFrame }",
              "name": "traceback",
              "desc": ""
            }
          ],
          "desc": ""
        }
      ],
      "name": "@eryx/exception",
      "tags": [],
      "functions": [
        {
          "source": {
            "path": "",
            "line": 20
          },
          "is_method": false,
          "signature": "exception.new(message: string, parent: Exception?) → Exception",
          "owner": "exception",
          "desc": "",
          "tags": [],
          "name": "new",
          "return_str": "Exception",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "Exception",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "message",
              "desc": ""
            },
            {
              "lua_type": "Exception?",
              "name": "parent",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 23
          },
          "is_method": false,
          "signature": "exception.format(error: Exception, useAnsi: boolean?) → string",
          "owner": "exception",
          "desc": "",
          "tags": [],
          "name": "format",
          "return_str": "string",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "string",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "Exception",
              "name": "error",
              "desc": ""
            },
            {
              "lua_type": "boolean?",
              "name": "useAnsi",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 26
          },
          "is_method": false,
          "signature": "exception.isInterrupt(error: any) → boolean",
          "owner": "exception",
          "desc": "",
          "tags": [],
          "name": "isInterrupt",
          "return_str": "boolean",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "boolean",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "any",
              "name": "error",
              "desc": ""
            }
          ]
        }
      ],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": ""
    }
  ]
}