File size: 850 Bytes
9eafa48
 
 
 
 
 
 
 
 
 
 
 
d594446
 
 
9eafa48
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { readFileSync } from 'node:fs';

/** Loads KEY=value lines from .env into process.env without overriding existing variables. */
export function loadDotEnv(path = '.env'): void {
	let text: string;
	try {
		text = readFileSync(path, 'utf8');
	} catch {
		return;
	}
	for (const line of text.split('\n')) {
		const m = /^\s*([A-Z_][A-Z0-9_]*)\s*=\s*(.*?)\s*$/.exec(line);
		if (!m || m[1] in process.env) continue;
		const raw = m[2];
		process.env[m[1]] = /^["']/.test(raw) ? raw.replace(/^["']|["']$/g, '') : raw.split(/\s+#/)[0].trim();
	}
}

export function realBucket(): { token: string; bucket: `buckets/${string}` } | null {
	loadDotEnv();
	const token = process.env.HF_TOKEN;
	const bucket = process.env.HF_BUCKET;
	if (!token || !bucket?.startsWith('buckets/')) return null;
	return { token, bucket: bucket as `buckets/${string}` };
}