Reactive web app server. Focuses on MPAs with simple server middleware & browser build api. Uses a rebuildjs core with:
Relysjs uses rmemo to coordinate the build steps & state.
relysjs is an app server that uses ElysiaJS middleware to create routes. Relysjs includes running the development production app server processes.
handles development & production builds. It uses esbuild under the hood. Providing helper functions to manage coordinate builds.
The build config is in app-root/build.ts
. It can run the build if it's the entry file & export the build
function to be used when starting the dev server. Here is the build.ts file from my site briantakita.me
function | description |
---|---|
relysjs_server__build |
Run esbuild for the server logic. Includes web page assets generated over SSR. |
relysjs_browser__build |
Run esbuild for asset files served over http. Manages assets generated by relysjs_server__build & browser-side javascript logic. |
Used to start the production web app from the build output in the dist
directory. Here is start.ts from briantakita.me.
The entry files for the middleware server + browser builds. There is a separate esbuild target for each defined index.server.ts
& index.browser.ts
file.
Starts the web server with site-wide middleware. Here is app/index.ts from briantakita.me.
A relysjs_server__build
build target for a middleware. Here is app/index.server.ts from briantakita.me.
A relysjs_browser__build
build target for a middleware. Here is app/index.server.ts from briantakita.me.
ctx-core/be organizes server side & build state into namespaces. By default, the state is in the ''
namespace. rebuildjs & by extension relysjs stores the state in 4 namespaces:
ns: 'app'
ns: 'middleware'
ns: 'request'
ns: ''
Relevant be functions are in the relysjs/server
module.
ctx state that lives during the lifetime of the build & the app. It stores:
- application info
- configuration
- application build state
Some important functions include:
function | description |
---|---|
app_ |
Elysia middleware object |
relysjs__ready__wait |
Returns a promise that resolves when the relysjs part of the build is done |
relysjs__ready_ |
is true when the relysjs build step is complete |
ctx state that lives in the lifetime of a HTTP request. It stores request-specific info:
Some of the state includes:
function | description |
---|---|
elysia_context_ |
The ElysiaJS context for the request |
request_ |
The Request object |
request_url_ |
The Request url |
store_ |
The ElysiaJS store object |
Relysjs uses the tag vector name system. A terse name system to convey domain ontology as tag vectors.