API reference › @evolu/common › local‑first/Owner › createOwnerWebSocketTransport
function createOwnerWebSocketTransport(config: {
ownerId: string & Brand<"Id"> & Brand<"OwnerId">;
url: string;
}): OwnerWebSocketTransport;
Defined in: packages/common/src/local-first/Owner.ts:396
Creates an OwnerWebSocketTransport for the given relay URL and OwnerId.
The URL must be a WebSocket base URL without query parameters or fragments
(e.g., wss://relay.evolu.dev, not wss://relay.evolu.dev?foo=bar). The
function appends the ownerId as a query parameter.
Example
import {
AppName,
createAppOwner,
createEvolu,
createOwnerWebSocketTransport,
createOwnerSecret,
createRandomBytes,
id,
} from "@evolu/common";
// Create once, persist the mnemonic securely, and restore it on later runs.
const appOwner = createAppOwner(
createOwnerSecret({ randomBytes: createRandomBytes() }),
);
const transport = createOwnerWebSocketTransport({
url: "wss://relay.evolu.dev",
ownerId: appOwner.id,
});
const createTodoEvolu = createEvolu(
{ todo: { id: id("Todo") } },
{
appName: AppName.orThrow("OwnerTransportExample"),
appOwner,
transports: [transport],
},
);
expect(createTodoEvolu).toBeTypeOf("function");
expect(transport).toEqual({
type: "WebSocket",
url: `wss://relay.evolu.dev?ownerId=${appOwner.id}`,
});