Spaces:
Running
Running
import md5 from "spark-md5"; | |
declare global { | |
namespace NodeJS { | |
interface ProcessEnv { | |
OPENAI_API_KEY?: string; | |
CODE?: string; | |
PROXY_URL?: string; | |
VERCEL?: string; | |
HIDE_USER_API_KEY?: string; // disable user's api key input | |
DISABLE_GPT4?: string; | |
} | |
} | |
} | |
const ACCESS_CODES = (function getAccessCodes(): Set<string> { | |
const code = process.env.CODE; | |
try { | |
const codes = (code?.split(",") ?? []) | |
.filter((v) => !!v) | |
.map((v) => md5.hash(v.trim())); | |
return new Set(codes); | |
} catch (e) { | |
return new Set(); | |
} | |
})(); | |
export const getServerSideConfig = () => { | |
if (typeof process === "undefined") { | |
throw Error( | |
"[Server Config] you are importing a nodejs-only module outside of nodejs", | |
); | |
} | |
return { | |
apiKey: process.env.OPENAI_API_KEY, | |
code: process.env.CODE, | |
codes: ACCESS_CODES, | |
needCode: ACCESS_CODES.size, | |
proxyUrl: process.env.PROXY_URL, | |
isVercel: !!process.env.VERCEL, | |
hideUserApiKey: !!process.env.HIDE_USER_API_KEY || true, | |
enableGPT4: !process.env.DISABLE_GPT4, | |
}; | |
}; | |