Files
tricu/demos/runArboricxBundle.tri
James Eversole bf30d5945e (: Aiche Tee Tee Pee :)
Perhaps the first webserver in Tree Calculus? Sure, it's married to a Haskell
IO runtime... but we're managing all of the actual webserver semantics in tricu!

This includes a demo Arboricx application server that is capable of storing
and serving bundles.
2026-05-21 09:05:12 -05:00

26 lines
850 B
Plaintext

!import "../lib/prelude.tri" !Local
!import "../lib/io.tri" !Local
!import "../lib/arboricx/arboricx.tri" !Local
-- Read an Arboricx bundle from disk and execute it.
-- This demo loads test/fixtures/id.arboricx and applies the
-- default export to the string "hi". The id bundle simply
-- returns its argument, so the expected output is:
-- hi
--
-- Run with --allow-read test/fixtures/id.arboricx or --unsafe-io.
runBundle = (path arg :
bind (readFile path)
(result :
matchResult
(err rest : putStrLn "ERROR: Could not read bundle file")
(bundleBytes rest :
matchResult
(err rest : putStrLn "ERROR: Could not execute bundle")
(value rest : putStrLn value)
(runArboricx bundleBytes arg))
result))
main = io (runBundle "test/fixtures/id.arboricx" "hi")