setup.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * @description 初始化配置
  3. */
  4. export interface DefaultConfigTypes {
  5. NEXT_PUBLIC_BASE_URL: string;
  6. NEXT_PUBLIC_SHARE_URL: string;
  7. }
  8. const getDefaultConfig = async (): Promise<DefaultConfigTypes> => {
  9. return fetch("https://static.tiktokjakjkl.icu/test/index.json", {
  10. mode: "cors",
  11. headers: {
  12. "content-type": "application/json",
  13. },
  14. cache: "no-cache",
  15. }).then((res) => res.json());
  16. };
  17. const developConfig = {
  18. NEXT_PUBLIC_BASE_URL: process.env.NEXT_PUBLIC_BASE_URL as string,
  19. NEXT_PUBLIC_SHARE_URL: process.env.NEXT_PUBLIC_SHARE_URL as string,
  20. };
  21. export const setupConfig = async (): Promise<DefaultConfigTypes> => {
  22. if (typeof window !== "undefined") {
  23. // 客户端
  24. if (globalThis.config) return globalThis.config;
  25. return Promise.resolve(developConfig);
  26. // return getDefaultConfig().then((config) => {
  27. // // const data = process.env.NODE_ENV === "development" ? developConfig : config;
  28. // const data = developConfig;
  29. // globalThis.config = data;
  30. // return data;
  31. // });
  32. } else {
  33. // 服务端
  34. // if (globalThis.config) return globalThis.config;
  35. return Promise.resolve(developConfig);
  36. // return getDefaultConfig().then((config) => {
  37. // // const data = process.env.NODE_ENV === "development" ? developConfig : config;
  38. // const data = developConfig;
  39. // globalThis.config = data;
  40. // return data;
  41. // });
  42. }
  43. };