Files
bakery/src/env.ts
2025-03-27 11:32:20 +00:00

42 lines
1.8 KiB
TypeScript

import "dotenv/config";
import { mkdirp } from "mkdirp";
import { normalizeURL } from "applesauce-core/helpers";
import { OUTBOUND_PROXY_TYPES } from "./const.js";
import { normalizeToHexPubkey } from "./helpers/nip19.js";
import args from "./args.js";
export const OWNER_PUBKEY = process.env.OWNER_PUBKEY ? normalizeToHexPubkey(process.env.OWNER_PUBKEY) : undefined;
export const PUBLIC_ADDRESS = process.env.PUBLIC_ADDRESS;
export const DATA_PATH = process.env.DATA_PATH || "./data";
await mkdirp(DATA_PATH);
export const PORT = parseInt(args.values.port ?? process.env.PORT ?? "") || 3000;
// I2P config
export const I2P_PROXY = process.env.I2P_PROXY;
export const I2P_PROXY_TYPE = (process.env.I2P_PROXY_TYPE || "SOCKS5") as "SOCKS5" | "HTTP";
export const I2P_SAM_ADDRESS = process.env.I2P_SAM_ADDRESS;
if (!OUTBOUND_PROXY_TYPES.includes(I2P_PROXY_TYPE)) throw new Error("Invalid I2P_PROXY_TYPE, must be SOCKS5 or HTTP");
// Tor config
export const TOR_PROXY = process.env.TOR_PROXY;
export const TOR_PROXY_TYPE = (process.env.TOR_PROXY_TYPE || "SOCKS5") as "SOCKS5" | "HTTP";
export const TOR_ADDRESS = process.env.TOR_ADDRESS;
if (!OUTBOUND_PROXY_TYPES.includes(TOR_PROXY_TYPE)) throw new Error("Invalid TOR_PROXY_TYPE, must be SOCKS5 or HTTP");
// Default relay config
export const BOOTSTRAP_RELAYS = process.env.BOOTSTRAP_RELAYS
? process.env.BOOTSTRAP_RELAYS.split(",").map(normalizeURL)
: ["wss://nos.lol", "wss://relay.damus.io", "wss://relay.nostr.band"].map(normalizeURL);
export const COMMON_CONTACT_RELAYS = process.env.COMMON_CONTACT_RELAYS
? process.env.COMMON_CONTACT_RELAYS.split(",").map(normalizeURL)
: ["wss://purplepag.es", "wss://user.kindpag.es"].map(normalizeURL);
export const IS_DEV = process.env.NODE_ENV === "development";
export const IS_MCP = args.values.mcp;