Skip to content

Deno

Use MeshQL on Deno with JSR packages. Hono is the recommended HTTP adapter for Deno.

  • Deno 2+

JSR (recommended on Deno):

Terminal window
deno add jsr:@meshql/core jsr:@meshql/http jsr:@meshql/client
deno add npm:hono

npm (via Deno’s npm compatibility):

Terminal window
deno add npm:meshql-core npm:meshql-http npm:meshql-client npm:hono
{
"tasks": {
"dev": "deno run --allow-net --watch main.ts"
},
"imports": {
"@meshql/core": "jsr:@meshql/core@^0.1.2",
"@meshql/http": "jsr:@meshql/http@^0.1.2",
"@meshql/client": "jsr:@meshql/client@^0.1.2",
"hono": "npm:hono@^4"
}
}
import { Hono } from "hono";
import { createMesh, buildSelectSql, type MeshSchema } from "@meshql/core";
import { meshHonoRoutes } from "@meshql/http/hono";
const schema: MeshSchema = {
entities: {
user: { type: {} as { id: number; name: string }, fields: ["id", "name"], table: "users" },
token: {
type: {} as { accessToken: string },
fields: ["accessToken"],
table: "tokens",
columns: { accessToken: "access_token" },
},
},
joins: {
"user.tokens": {
entity: "token",
on: "tokens.user_id = users.id",
type: "many",
},
},
};
const mesh = createMesh(schema);
mesh.resolve("user", async (plan) => {
const { sql, params } = buildSelectSql(plan, schema);
console.log("[meshql]", sql, params);
return [{ user_id: 1, user_name: "Ada", tokens_accessToken: "tok_abc" }];
});
const app = new Hono();
app.route("/", meshHonoRoutes(mesh, { basePath: "/mesh" }));
Deno.serve({ port: 3001 }, app.fetch);
console.log("MeshQL on http://localhost:3001/mesh");
Terminal window
deno task dev
import { createClient } from "@meshql/client";
const client = createClient({ url: "http://localhost:3001/mesh" });
const user = await client.query(
{ user: { id: true, name: true, tokens: { accessToken: true } } },
{ entityId: "1" },
);
console.log(user);

Core packages are on JSR (@meshql/*) and npm (meshql-*), with Deno, Node, and Bun compatibility:

  • @meshql/core / meshql-core
  • @meshql/http / meshql-http
  • @meshql/client / meshql-client
  • @meshql/upload / meshql-upload

HTTP adapters · Hono integration