diff src/lib/Utils.luan @ 0:8f4df159f06b

start public repo
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 11 Jul 2025 20:57:49 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/lib/Utils.luan	Fri Jul 11 20:57:49 2025 -0600
@@ -0,0 +1,63 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local new_error = Luan.new_error or error()
+local ipairs = Luan.ipairs or error()
+local type = Luan.type or error()
+local set_metatable = Luan.set_metatable or error()
+local Number = require "luan:Number.luan"
+local long = Number.long or error()
+local String = require "luan:String.luan"
+local regex = String.regex or error()
+local Http = require "luan:http/Http.luan"
+local Logging = require "luan:logging/Logging.luan"
+local logger = Logging.logger "Utils"
+
+
+local Utils = {}
+
+Utils.is_production = Http.domain == "linkmy.style"
+
+Utils.compressed = {compressed=true}
+
+function Utils.base_url()
+	local request = Http.request
+	return request.scheme.."://"..request.headers["Host"]
+end
+
+local set_mt = {}
+function set_mt.__index(table,key)
+	return false
+end
+
+function Utils.list_to_set(list)
+	local set = {}
+	for _, v in ipairs(list) do
+		set[v] = true
+	end
+	set_metatable(set,set_mt)
+	return set
+end
+
+function Utils.to_list(input)
+	if input == nil then
+		return {}
+	elseif type(input) == "table" then
+		return input
+	else
+		return {input}
+	end
+end
+
+function Utils.long_or_nil(i)
+	return i and long(i)
+end
+
+Utils.email_regex = regex[[^[-+~.\w]+@([-.\w]+)$]]
+
+function Utils.warn(msg)
+	local e = new_error(msg)
+	e.priority = "warn"
+	e.throw()
+end
+
+return Utils