Files
community_bridge/lib/utility/shared/ids.lua
T

72 lines
1.8 KiB
Lua
Raw Normal View History

2025-02-05 17:42:50 -06:00
Ids = Ids or {}
2025-04-08 19:10:02 -04:00
---This will generate a unique id.
2025-05-09 19:06:50 -05:00
---@param tbl table | nil
---@param len number | nil
---@param pattern string | nil
2025-04-08 19:10:02 -04:00
---@return string
2025-02-05 17:42:50 -06:00
Ids.CreateUniqueId = function(tbl, len, pattern) -- both optional
tbl = tbl or {} -- table to check uniqueness. Ids to check against must be the key to the tables value
len = len or 8
local id = ""
for i = 1, len do
local char = ""
if pattern then
2025-03-02 23:23:18 -06:00
local charIndex = math.random(1, #pattern)
char = pattern:sub(charIndex, charIndex)
2025-02-05 17:42:50 -06:00
else
char = math.random(1, 2) == 1 and string.char(math.random(65, 90)) or math.random(0, 9) -- CAP letter and number
end
id = id .. char
end
if tbl[id] then
return Ids.CreateUniqueId(tbl, len, pattern)
end
return id
end
2025-04-08 19:10:02 -04:00
---This will generate a unique id.
---@param tbl table
---@param len number
---@return string
2025-02-05 17:42:50 -06:00
Ids.RandomUpper = function(tbl, len)
return Ids.CreateUniqueId(tbl, len, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
end
2025-04-08 19:10:02 -04:00
---This will generate a unique id.
---@param tbl table
---@param len number
---@return string
2025-02-05 17:42:50 -06:00
Ids.RandomLower = function(tbl, len)
return Ids.CreateUniqueId(tbl, len, "abcdefghijklmnopqrstuvwxyz")
end
2025-04-08 19:10:02 -04:00
---This will generate a unique id.
---@param tbl table
---@param len number
---@return string
2025-02-05 17:42:50 -06:00
Ids.RandomString = function(tbl, len)
return Ids.CreateUniqueId(tbl, len, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
end
2025-04-08 19:10:02 -04:00
---This will generate a unique id.
---@param tbl table
---@param len number
---@return string
2025-02-05 17:42:50 -06:00
Ids.RandomNumber = function(tbl, len)
return Ids.CreateUniqueId(tbl, len, "0123456789")
end
2025-04-08 19:10:02 -04:00
---This will generate a unique id.
---@param tbl table
---@param len number
---@return string
2025-02-05 17:42:50 -06:00
Ids.Random = function(tbl, len)
return Ids.CreateUniqueId(tbl, len)
end
exports("Ids", Ids)
return Ids