Documentation
Getting started
Server code setup

Code setup

Server

After installing you can start setting upp your app router on your server

Initialize TSDL

server.ts
import { createTSDL } from "@tsdl/server";
 
export const tsdl = createTSDL();
 
const fruit = ["banana", "apple", "orange"];
const router = tsdl.router({
  food: tsdl.router({
    fetchFruit: tsdl.query(() => fruit),
  }),
});
 
export type Router = typeof router;

Add HTTP capabilities

npm i @tsdl/node @tsdl/server
npm i -D @types/node
server.ts
import { createTSDL } from "@tsdl/server";
import http from "node:http";
import { nodeTSDL } from "@tsdl/node";
 
// A base context is created for each query
const tsdl = createTSDL<{
  req: http.IncomingMessage;
  res: http.ServerResponse<http.IncomingMessage>;
  color: string,
}>();
 
const fruit = ["banana", "apple", "orange"];
const router = tsdl.router({
  food: tsdl.router({
    fetchFruit: tsdl.query(() => fruit),
  }),
});
 
export type Router = typeof router;
 
const requestListener = (
  req: http.IncomingMessage,
  res: http.ServerResponse<http.IncomingMessage>
) => {
  if (req.url?.startsWith("/tsdl")) {
    return nodeTSDL(router, req, res, { req, res, color: "yellow" });
  }
};
 
const server = http.createServer(requestListener);
 
server.listen(8000);