diff --git a/plugin/src/invariant.lua b/plugin/src/invariant.lua new file mode 100644 index 00000000..3923095b --- /dev/null +++ b/plugin/src/invariant.lua @@ -0,0 +1,27 @@ +local Config = require(script.Parent.Config) + +local invariant + +if Config.isDevBuild then + function invariant(message, ...) + message = string.format(message, ...) + + error("Invariant violation: " .. message, 2) + end +else + function invariant(message, ...) + message = string.format(message, ...) + + local fullMessage = string.format( + "Rojo detected an invariant violation within itself:\n" .. + "%s\n\n" .. + "This is a bug in Rojo. Please file an issue:\n" .. + "https://github.com/rojo-rbx/rojo/issues", + message + ) + + error(fullMessage, 2) + end +end + +return invariant \ No newline at end of file