API reference › @evolu/common › WebSocket › WebSocketUrlFromString

const WebSocketUrlFromString: transform(
  "WebSocketUrlFromString",
  String,
  WebSocketUrl,
  {
    from: (value: string): Result<string, WebSocketUrlFromStringError> => {
      const url = UrlFromString.fromUnknown(value);
      return url.ok && isWebSocketUrl(url.value)
        ? ok(url.value)
        : err({ type: "WebSocketUrlFromString", value });
    },
    to: (value: WebSocketUrl) => value,
  },
  formatWebSocketUrlFromStringError,
);

Defined in: packages/common/src/WebSocket.ts:716

Transforms a WebSocket URL into its canonical WebSocketUrl.

Accepts what UrlFromString accepts when the result is a WebSocketUrl. Encoding returns the canonical spelling, not the original one.

Example

import {
  assertEqual,
  assertErr,
  assertOk,
  WebSocketUrlFromString,
} from "@evolu/common";

assertOk(
  WebSocketUrlFromString.fromUnknown("WSS://Free.EvoluHQ.com:443"),
  "wss://free.evoluhq.com/",
);

const invalid = WebSocketUrlFromString.fromUnknown("https://evolu.dev");
assertErr(invalid, {
  type: "WebSocketUrlFromString",
  value: "https://evolu.dev",
});
assertEqual(
  WebSocketUrlFromString.formatError(invalid.error),
  'The value "https://evolu.dev" is not a valid WebSocket URL.',
);