🍮 PudimServer Docs

Module: PudimServer.utils

Type validation, logging, and file utility helpers.

utils:createInterface(fields, extends?)

Creates type contracts for runtime validation.

Inputs: fields (type table), extends? (optional table).

Output: interface/contract object.

local utils = require("PudimServer.utils")
local User = utils:createInterface{
  name = "string",
  age = "number"
}

utils:verifyTypes(value, contract, printerFn?, break?)

Validates types and returns (true) or (false, errorMsg).

Inputs: value, contract, printerFn?, break?.

Output: boolean and optionally an error string.

local ok, err = utils:verifyTypes({name = "Ana", age = 21}, User)
print(ok, err)

utils:loadMessageOnChange(channel, msg, printerFn)

Emits a message only when its content changes.

Inputs: channel (string), msg (string), printerFn (function).

Output: no meaningful return value (logging side effect).

utils:loadMessageOnChange("reload", "module reloaded", print)

utils:checkFilesExist(file)

Checks whether a file exists on disk.

Inputs: file (string).

Output: boolean.

local exists = utils:checkFilesExist("./README.md")
print(exists)

utils:getContentFile(file)

Reads file content and returns a string.

Inputs: file (string).

Output: string with file content.

local content = utils:getContentFile("./README.md")
print(content)

utils:writeFile(file, content)

Writes content to a file.

Inputs: file (string), content (string).

Output: no meaningful return value.

utils:writeFile("./tmp.txt", "Hello from PudimServer")

utils:mkdir(path)

Creates a directory recursively when needed.

Inputs: path (string).

Output: no meaningful return value.

utils:mkdir("./tmp/nested")