44 lines
888 B
Plaintext
44 lines
888 B
Plaintext
--!strict
|
|
|
|
--[[
|
|
Utility function to log a Fusion-specific error.
|
|
]]
|
|
|
|
local Types = require "../Types"
|
|
local messages = require "../Logging/messages"
|
|
|
|
local function logError(messageID: string, errObj: Types.Error?, ...)
|
|
local formatString: string
|
|
|
|
if messages[messageID] ~= nil then
|
|
formatString = messages[messageID]
|
|
else
|
|
messageID = "unknownMessage"
|
|
formatString = messages[messageID]
|
|
end
|
|
|
|
local errorString
|
|
if errObj == nil then
|
|
errorString = string.format(
|
|
"[Fusion] " .. formatString .. "\n(ID: " .. messageID .. ")",
|
|
...
|
|
)
|
|
else
|
|
formatString =
|
|
formatString:gsub("ERROR_MESSAGE", tostring(errObj.message))
|
|
errorString = string.format(
|
|
"[Fusion] "
|
|
.. formatString
|
|
.. "\n(ID: "
|
|
.. messageID
|
|
.. ")\n---- Stack trace ----\n"
|
|
.. tostring(errObj.trace),
|
|
...
|
|
)
|
|
end
|
|
|
|
error(errorString:gsub("\n", "\n "), 0)
|
|
end
|
|
|
|
return logError
|