mirror of
https://github.com/documenso/documenso.git
synced 2026-07-10 21:15:15 +10:00
138d663c25
Merge origin/main into feat/external-2fa-codes. Resolve formatting conflicts caused by biome rollout; preserve both feature streams: PR's external 2FA token + signing-session 2FA proof additions plus main's RateLimit/RecipientExpired/signingReminders/date-auto-insert. In complete-document-with-token.ts, drop the duplicate early field-fetching block introduced when main moved that logic later with date auto-insert support; keep the EXTERNAL_TWO_FACTOR_AUTH check using derivedRecipientActionAuth.
25 lines
991 B
TypeScript
25 lines
991 B
TypeScript
/// <reference types="@documenso/tsconfig/process-env.d.ts" />
|
|
|
|
declare global {
|
|
interface Window {
|
|
__ENV__?: Record<string, string | undefined>;
|
|
}
|
|
}
|
|
|
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
type EnvKey = keyof NodeJS.ProcessEnv | (string & {});
|
|
type EnvValue<K extends EnvKey> = K extends keyof NodeJS.ProcessEnv ? NodeJS.ProcessEnv[K] : string | undefined;
|
|
|
|
export const env = <K extends EnvKey>(variable: K): EnvValue<K> => {
|
|
if (typeof window !== 'undefined' && typeof window.__ENV__ === 'object') {
|
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
return window.__ENV__[variable as string] as EnvValue<K>;
|
|
}
|
|
|
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
return (typeof process !== 'undefined' ? process?.env?.[variable] : undefined) as EnvValue<K>;
|
|
};
|
|
|
|
export const createPublicEnv = () =>
|
|
Object.fromEntries(Object.entries(process.env).filter(([key]) => key.startsWith('NEXT_PUBLIC_')));
|