diff --git a/lua/kulala/parser/init.lua b/lua/kulala/parser/init.lua index 5c0bdd75..41379577 100644 --- a/lua/kulala/parser/init.lua +++ b/lua/kulala/parser/init.lua @@ -451,7 +451,7 @@ end ---Parse a request and return the request on itself, its headers and body ---@param start_request_linenr number|nil The line number where the request starts ----@return Request -- Table containing the request data +---@return Request|nil -- Table containing the request data or nil if parsing fails function M.parse(start_request_linenr) local res = { metadata = {}, @@ -483,6 +483,11 @@ function M.parse(start_request_linenr) document_variables, requests = M.get_document() req = M.get_request_at(requests, start_request_linenr) end + + if req == nil then + return nil + end + Scripts.javascript.run("pre_request", req.scripts.pre_request) local env = ENV_PARSER.get_env() diff --git a/lua/kulala/ui/init.lua b/lua/kulala/ui/init.lua index 97b4f916..3db7f114 100644 --- a/lua/kulala/ui/init.lua +++ b/lua/kulala/ui/init.lua @@ -125,7 +125,6 @@ end ---Prints the parsed Request table into current buffer - uses nvim_put local function print_http_spec(spec, curl) local lines = {} - local idx = 1 table.insert(lines, "# " .. curl) @@ -149,6 +148,10 @@ end M.copy = function() local result = PARSER.parse() + if result == nil then + Logger.error("No request found") + return + end local cmd_table = {} local skip_arg = false for idx, v in ipairs(result.cmd) do