commit c0d7dc4d1d8891c5b3595f710b99fb5b20dae6af
parent 5ab812730a971c44b59df61d341e4604669765e1
Author: triesap <triesap@radroots.dev>
Date: Thu, 20 Nov 2025 16:59:07 +0000
client: add environment config, set default web client base url to configured endpoint
Diffstat:
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/client/.env.example b/client/.env.example
@@ -0,0 +1 @@
+VITE_PUBLIC_RADROOTS_API=
+\ No newline at end of file
diff --git a/client/src/_env.ts b/client/src/_env.ts
@@ -0,0 +1,12 @@
+import dotenv from "dotenv";
+dotenv.config();
+
+const RADROOTS_API = process.env.VITE_PUBLIC_RADROOTS_API;
+if (!RADROOTS_API || typeof RADROOTS_API !== 'string') throw new Error('Missing env var: VITE_PUBLIC_RADROOTS_API');
+
+const PROD = process.env.NODE_ENV === 'production';
+
+export const _envLib = {
+ PROD,
+ RADROOTS_API,
+} as const;
diff --git a/client/src/radroots/web.ts b/client/src/radroots/web.ts
@@ -1,5 +1,6 @@
import { err_msg, type IHttpResponse, is_err_response, is_error_response } from '@radroots/utils';
import { lib_nostr_event_sign_attest } from '@radroots/utils-nostr';
+import { _envLib } from '../_env.js';
import { WebHttp } from '../http/web.js';
import type { IClientRadroots, IClientRadrootsAccountsActivate, IClientRadrootsAccountsActivateResolve, IClientRadrootsAccountsCreate, IClientRadrootsAccountsCreateResolve, IClientRadrootsAccountsRequest, IClientRadrootsAccountsRequestResolve, IClientRadrootsMediaImageUpload, IClientRadrootsMediaImageUploadResolve } from "./types.js";
@@ -7,8 +8,9 @@ export class WebClientRadroots implements IClientRadroots {
private _base_url: string
private _http_client: WebHttp
- constructor(base_url: string) {
- this._base_url = base_url.replaceAll(`/`, ``);
+ constructor(base_url?: string) {
+ const url = base_url || _envLib.RADROOTS_API;
+ this._base_url = url.replaceAll(`/`, ``);
this._http_client = new WebHttp();
}