forked from Evavic44/victoreke.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenv.api.ts
55 lines (47 loc) · 1.34 KB
/
env.api.ts
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
49
50
51
52
53
54
55
export const projectId = checkValue(
process.env.NEXT_PUBLIC_SANITY_PROJECT_ID,
"NEXT_PUBLIC_SANITY_PROJECT_ID",
"https://sanity.io"
);
export const dataset: string = checkValue(
process.env.NEXT_PUBLIC_SANITY_DATASET,
"NEXT_PUBLIC_SANITY_DATASET",
"https://sanity.io"
);
export const token = checkValue(
process.env.NEXT_PUBLIC_SANITY_ACCESS_TOKEN,
"NEXT_PUBLIC_SANITY_ACCESS_TOKEN",
"https://sanity.io"
);
export const hookSecret = process.env.NEXT_PUBLIC_SANITY_HOOK_SECRET;
export const mode = process.env.NODE_ENV;
export const apiVersion =
process.env.NEXT_PUBLIC_SANITY_API_VERSION || "2023-07-21";
export const giscusRepoId = checkValue(
process.env.NEXT_PUBLIC_GISCUS_REPOID,
"NEXT_PUBLIC_GISCUS_REPOID",
"https://giscus.app/"
);
export const giscusCategoryId = checkValue(
process.env.NEXT_PUBLIC_GISCUS_CATEGORYID,
"NEXT_PUBLIC_GISCUS_CATEGORYID",
"https://giscus.app/"
);
export const umamiSiteId = checkValue(
process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID,
"NEXT_PUBLIC_UMAMI_WEBSITE_ID",
"https://umami.is"
);
// Validate env varaibles
function checkValue<T>(
value: T | undefined,
errorMsg: string,
url?: string
): T {
if (value === undefined) {
throw new Error(
`Missing Environment Variable: ${errorMsg}\n\nVist ${url} to learn how you can generate your own API keys`
);
}
return value;
}