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