API reference › @evolu/nodejs › createRelay
function createRelay(
__namedParameters: NodeJsRelayConfig,
): Task<Relay, never, RelayDeps>;
Defined in: packages/nodejs/src/local-first/Relay.ts:87
Creates an Evolu Relay server resource using Node.js.
Use createRelayDeps to create dependencies for better-sqlite3, or provide a custom SQLite driver implementation.
Example
// Ensure the database is created in a predictable location for Docker.
mkdirSync("data", { recursive: true });
process.chdir("data");
const console = createConsole({
// level: "debug",
formatter: createConsoleFormatter()({
timestampFormat: "relative",
}),
});
const deps = { ...createRelayDeps(), console };
await runMain(deps)(
createRelay({
port: 4000,
// Note: Relay requires URL in format ws://host:port?ownerId=<ownerId>
// isOwnerAllowed: (_ownerId, { signal: _signal }) => true,
isOwnerWithinQuota: (_ownerId, requiredBytes) => {
const maxBytes = 1024 * 1024; // 1MB
return requiredBytes <= maxBytes;
},
}),
);