the-wireguard-effect
Version:
Cross platform wireguard api client for nodejs built on wireguard-go with effect-ts
41 lines • 1.16 kB
JavaScript
/**
* Wireguard config schema definitions
*
* @since 1.0.0
*/
import * as FileSystem from "@effect/platform/FileSystem";
import * as Effect from "effect/Effect";
import * as Schema from "effect/Schema";
import * as circular from "./internal/circular.js";
export {
/**
* A wireguard configuration.
*
* @since 1.0.0
* @category Schemas
*/
WireguardConfig } from "./internal/circular.js";
export {
/**
* A wireguard configuration encoded in the INI format.
*
* @since 1.0.0
* @category Schema Transformations
* @see {@link WireguardConfig}
*/
WireguardIniConfig } from "./internal/circular.js";
/**
* Loads a wireguard interface configuration from an INI file.
*
* @since 1.0.0
* @category Constructors
* @param file - The path to the INI file.
*/
export const fromConfigFile = file => Effect.gen(function* () {
const fs = yield* FileSystem.FileSystem;
const fsConfig = yield* fs.readFileString(file);
const iniConfigEncoded = yield* Schema.encode(circular.WireguardIniConfig)(fsConfig);
const config = yield* Schema.decode(circular.WireguardConfig)(iniConfigEncoded);
return config;
});
//# sourceMappingURL=WireguardConfig.js.map