-
-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathenv.ts
More file actions
48 lines (44 loc) 路 2.19 KB
/
Copy pathenv.ts
File metadata and controls
48 lines (44 loc) 路 2.19 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import type { GitHubAccountType, SponsorkitConfig } from '../types'
import process from 'node:process'
import dotenv from 'dotenv'
function getDeprecatedEnv(name: string, replacement: string) {
const value = process.env[name]
if (value)
console.warn(`[sponsorkit] env.${name} is deprecated, use env.${replacement} instead`)
return value
}
export function loadEnv(): Partial<SponsorkitConfig> {
dotenv.config({ quiet: true })
const config: Partial<SponsorkitConfig> = {
github: {
login: process.env.SPONSORKIT_GITHUB_LOGIN || process.env.GITHUB_LOGIN || getDeprecatedEnv('SPONSORKIT_LOGIN', 'SPONSORKIT_GITHUB_LOGIN'),
token: process.env.SPONSORKIT_GITHUB_TOKEN || process.env.GITHUB_TOKEN || getDeprecatedEnv('SPONSORKIT_TOKEN', 'SPONSORKIT_GITHUB_TOKEN'),
type: (process.env.SPONSORKIT_GITHUB_TYPE || process.env.GITHUB_TYPE) as GitHubAccountType | undefined,
},
patreon: {
token: process.env.SPONSORKIT_PATREON_TOKEN || process.env.PATREON_TOKEN,
},
opencollective: {
key: process.env.SPONSORKIT_OPENCOLLECTIVE_KEY || process.env.OPENCOLLECTIVE_KEY,
id: process.env.SPONSORKIT_OPENCOLLECTIVE_ID || process.env.OPENCOLLECTIVE_ID,
slug: process.env.SPONSORKIT_OPENCOLLECTIVE_SLUG || process.env.OPENCOLLECTIVE_SLUG,
githubHandle: process.env.SPONSORKIT_OPENCOLLECTIVE_GH_HANDLE || process.env.OPENCOLLECTIVE_GH_HANDLE,
type: process.env.SPONSORKIT_OPENCOLLECTIVE_TYPE || process.env.OPENCOLLECTIVE_TYPE,
},
afdian: {
userId: process.env.SPONSORKIT_AFDIAN_USER_ID || process.env.AFDIAN_USER_ID,
token: process.env.SPONSORKIT_AFDIAN_TOKEN || process.env.AFDIAN_TOKEN,
exchangeRate: Number.parseFloat(process.env.SPONSORKIT_AFDIAN_EXCHANGE_RATE || process.env.AFDIAN_EXCHANGE_RATE || '0') || undefined,
},
polar: {
token: process.env.SPONSORKIT_POLAR_TOKEN || process.env.POLAR_TOKEN,
organization: process.env.SPONSORKIT_POLAR_ORGANIZATION || process.env.POLAR_ORGANIZATION,
},
liberapay: {
login: process.env.SPONSORKIT_LIBERAPAY_LOGIN || process.env.LIBERAPAY_LOGIN,
},
outputDir: process.env.SPONSORKIT_DIR,
}
// remove undefined keys
return JSON.parse(JSON.stringify(config))
}