File

teal-src/util/error.d.tl @ 11995:bbd3ac65640d

mod_cron: Initialize daily tasks so they run around midnight UTC Eventually the goal is to have daily tasks run while there is little activity, but that will vary with the server and the usage patterns of its users. This is a start anyway.
author Kim Alvefur <zash@zash.se>
date Fri, 03 Dec 2021 00:11:31 +0100
parent 11459:86904555bffc
child 12626:608443cc765c
line wrap: on
line source

local enum error_type
	"auth"
	"cancel"
	"continue"
	"modify"
	"wait"
end

local enum error_condition
	"bad-request"
	"conflict"
	"feature-not-implemented"
	"forbidden"
	"gone"
	"internal-server-error"
	"item-not-found"
	"jid-malformed"
	"not-acceptable"
	"not-allowed"
	"not-authorized"
	"policy-violation"
	"recipient-unavailable"
	"redirect"
	"registration-required"
	"remote-server-not-found"
	"remote-server-timeout"
	"resource-constraint"
	"service-unavailable"
	"subscription-required"
	"undefined-condition"
	"unexpected-request"
end

local record protoerror
	type : error_type
	condition : error_condition
	text : string
	code : integer
end

local record error
	type : error_type
	condition : error_condition
	text : string
	code : integer
	context : { any : any }
	source : string
end

local type compact_registry_item = { string, string, string, string }
local type compact_registry = { compact_registry_item }
local type registry = { string : protoerror }
local type context = { string : any }

local record error_registry_wrapper
	source : string
	registry : registry
	new : function (string, context) : error
	coerce : function (any, string) : any, error
	wrap : function (error) : error
	wrap : function (string, context) : error
	is_error : function (any) : boolean
end

local record lib
	record configure_opt
		auto_inject_traceback : boolean
	end
	new : function (protoerror, context, { string : protoerror }, string) : error
	init : function (string, string, registry | compact_registry) : error_registry_wrapper
	init : function (string, registry | compact_registry) : error_registry_wrapper
	is_error : function (any) : boolean
	coerce : function (any, string) : any, error
	from_stanza : function (table, context, string) : error
	configure : function
end

return lib