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);