Skip to main content Link Search Menu Expand Document (external link)

InternetSchemas.ts overview

Internet schemas for wireguard configuration.

Since v1.0.0


Exports Grouped by Category


Schemas

DurationFromSeconds (class)

Transforms a number of seconds into a Duration.

Signature

declare class DurationFromSeconds

Source

Since v1.0.0

DurationFromSecondsString (class)

Transforms a string of seconds into a Duration.

Signature

declare class DurationFromSecondsString

Source

Since v1.0.0

Endpoint (class)

A wireguard endpoint, which is either an IPv4 or IPv6 endpoint.

Example

import * as Schema from "effect/Schema";

    import { Endpoint } from "the-wireguard-effect/InternetSchemas";

    const decodeEndpoint = Schema.decodeSync(Endpoint);
    const endpoint1 = decodeEndpoint("1.2.3.4:51820");
    const endpoint2 = decodeEndpoint("1.2.3.4:51820:41820");

    const endpoint3 = decodeEndpoint({
        ip: "1.2.3.4",
        port: 51820,
        family: "ipv4",
    });

    const endpoint4: Endpoint = decodeEndpoint({
        ip: "1.2.3.4",
        natPort: 51820,
        listenPort: 41820,
        family: "ipv4",
    });

    const endpoint5 = decodeEndpoint(
        "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:51820"
    );
    const endpoint6 = decodeEndpoint(
        "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:51820:41820"
    );

    const endpoint7 = decodeEndpoint({
        ip: "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
        port: 51820,
        family: "ipv6",
    });

    const endpoint8: Endpoint = decodeEndpoint({
        ip: "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
        natPort: 51820,
        listenPort: 41820,
        family: "ipv6",
    });
    ```;

Signature

declare class Endpoint

Source

Since v1.0.0

HostnameEndpoint (class)

A hostname wireguard endpoint, which consists of a hostname followed by a
Nat port then an optional local port. If only one port is provided, it is assumed that the nat port and listen port are the same.

Signature

declare class HostnameEndpoint

Source

Since v1.0.0

HostnameIPv4SetupData (class)

A wireguard setup data, which consists of an endpoint followed by an address.

See

  • IPv4
  • HostnameEndpoint

Signature

declare class HostnameIPv4SetupData

Source

Since v1.0.0

HostnameIPv6SetupData (class)

A wireguard setup data, which consists of an endpoint followed by an address.

See

  • IPv6
  • HostnameEndpoint

Signature

declare class HostnameIPv6SetupData

Source

Since v1.0.0

IPv4Endpoint (class)

An IPv4 wireguard endpoint, which consists of an IPv4 address followed by a nat port then an optional local port. If only one port is provided, it is assumed that the nat port and listen port are the same.

Example


    import * as assert from "node:assert";

    import * as Schema from "effect/Schema";
    import { IPv4Endpoint } from "the-wireguard-effect/InternetSchemas";

    const decodeEndpoint = Schema.decodeSync(IPv4Endpoint);
    const endpoint1 = decodeEndpoint("1.2.3.4:51820");
    const endpoint2 = decodeEndpoint("1.2.3.4:51820:41820");

    const endpoint3 = decodeEndpoint({
        ip: "1.2.3.4",
        port: 51820,
        family: "ipv4",
    });

    const endpoint4 = decodeEndpoint({
        ip: "1.2.3.4",
        natPort: 51820,
        listenPort: 41820,
        family: "ipv4",
    });
    ```;

**Signature**

```ts
declare class IPv4Endpoint

Source

Since v1.0.0

IPv4SetupData (class)

A wireguard setup data, which consists of an endpoint followed by an address.

Example

import * as Schema from "effect/Schema";
    import { SetupData } from "the-wireguard-effect/InternetSchemas";

    const decodeSetupData = Schema.decodeSync(SetupData);
    const setupData = decodeSetupData(["1.1.1.1:51280", "10.0.0.1"]);
    ```;

Signature

declare class IPv4SetupData

Source

Since v1.0.0

IPv6Endpoint (class)

An IPv6 wireguard endpoint, which consists of an IPv6 address in square brackets followed by a nat port then an optional local port. If only one port is provided, it is assumed that the nat port and listen port are the same.

Example


    import * as assert from "node:assert";

    import * as Schema from "effect/Schema";
    import { IPv6Endpoint } from "the-wireguard-effect/InternetSchemas";

    const decodeEndpoint = Schema.decodeSync(IPv6Endpoint);
    const endpoint1 = decodeEndpoint(
        "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:51820"
    );
    const endpoint2 = decodeEndpoint(
        "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:51820:41820"
    );

    const endpoint3 = decodeEndpoint({
        ip: "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
        port: 51820,
        family: "ipv6",
    });

    const endpoint4 = decodeEndpoint({
        ip: "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
        natPort: 51820,
        listenPort: 41820,
        family: "ipv6",
    });
    ```;

**Signature**

```ts
declare class IPv6Endpoint

Source

Since v1.0.0

IPv6SetupData (class)

A wireguard setup data, which consists of an endpoint followed by an address.

Example

import * as Schema from "effect/Schema";
    import { SetupData } from "the-wireguard-effect/InternetSchemas";

    const decodeSetupData = Schema.decodeSync(SetupData);
    const setupData = decodeSetupData(["1.1.1.1:51280", "10.0.0.1"]);
    ```;

Signature

declare class IPv6SetupData

Source

Since v1.0.0

SetupData (class)

A wireguard setup data, which consists of an endpoint followed by an address.

Example


    import * as assert from "node:assert";

    import * as Schema from "effect/Schema";
    import { SetupData } from "the-wireguard-effect/InternetSchemas";

    const decodeSetupData = Schema.decodeSync(SetupData);
    const setupData = decodeSetupData(["1.1.1.1:51280", "10.0.0.1"]);
    ```;

**See**

- `Address`
- `Endpoint`

**Signature**

```ts
declare class SetupData

Source

Since v1.0.0