A proof of concept server that can be configured with YAML ⚙️ or LUA 🌕
For YAML create a kserver.yml file in the directory you want to serve,
the file should look like this:
# yaml-language-server: $schema=https://raw.githubusercontent.com/kociumba/kserver/main/.kserver
port: 8080
handlers:
- route: /
content: ./index.html
contentType: text/html
# Add more routes here, in VSCode you can use ctrl+space to autocomplete the arrayNote
There is a YAML schema availible if you include the top comment, which allows for autocomplete in VSCode.
Tip
To use lua configuration, pass the -lua flag to kserver
There is no way to set the port in lua so you can use -port: INT to configure it or use the default 8000
For LUA create a kserver.lua file in the directory you want to serve,
the file should look like this:
local routes = {
-- It's important to keep the order of these parameteres otherwise the server will confuse them
{route = "/", content = "./index.html", contentType = "text/html"},
-- Add more routes here
}
Register_routes(routes)If you need custom logic before registering you can add it before the call to Register_routes(routes) or replace it with this:
for i, r in ipairs(routes) do
local route = route.new(r.route, r.content, r.contentType, r.handler)
if not route then
error("Failed to create route")
end
local success, err = pcall(function()
local result = registerRoutes(route)
if not result then
error("Failed to register route: " .. r.route)
end
end)
if not success then
error("Error registering route: " .. err)
end
endNote
Register_routes and registerRoutes will show up as undefined as they are created at runtime when the server starts.
- Support for custom endpoint logic with the lua configuration
