refactor: getConfig 로직 수정
This commit is contained in:
@@ -10,13 +10,9 @@ import { PromptProvider, StoreProvider } from "@/shared/providers";
|
||||
import { AlertDialog } from "@/shared/ui/alert-dialog";
|
||||
import { PromptDialog } from "@/shared/ui/prompt-dialog";
|
||||
import { ConfirmDialog } from "@/shared/ui/confirm-dialog";
|
||||
import { initializeNextClientConfig } from "@common/config";
|
||||
|
||||
const AppProvider = ({ children }: Readonly<{ children: React.ReactNode }>) => {
|
||||
const queryClient = new QueryClient();
|
||||
|
||||
initializeNextClientConfig();
|
||||
|
||||
return (
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<StoreProvider>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "turbo run build --filter=!wr",
|
||||
"build:common": "turbo run build --filter=@common/*",
|
||||
"dev": "turbo run dev",
|
||||
"dev:cs": "turbo run dev --filter=cs",
|
||||
"dev:wr": "turbo run dev --filter=wr",
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
export * from "./initialize-config";
|
||||
export * from "./initializer";
|
||||
|
||||
@@ -13,23 +13,14 @@ const defaultConfig: EnvConfig = {
|
||||
PORT: "3000",
|
||||
PROXY_HOST: "",
|
||||
SERVER_API_URL: "",
|
||||
SITE_ID: "CS",
|
||||
SITE_ID: "",
|
||||
CLAIM_NAME: "Authorization",
|
||||
ACCESS_TOKEN: "access-token",
|
||||
REFRESH_TOKEN: "refresh-token",
|
||||
AUTH_USER_ID: "token-id",
|
||||
};
|
||||
|
||||
let isInitialized = false;
|
||||
let envConfig: EnvConfig = { ...defaultConfig };
|
||||
|
||||
export function initializeConfig(values: Partial<EnvConfig>): void {
|
||||
console.log("initializeConfig >>>> values: ", values);
|
||||
if (isInitialized) {
|
||||
console.warn("Configuration already initialized. Skipping.");
|
||||
return;
|
||||
}
|
||||
|
||||
export function generateEnvConfig(values: Partial<EnvConfig>): EnvConfig {
|
||||
const filteredValues = Object.entries(values).reduce((acc, [key, value]) => {
|
||||
if (value !== undefined && value !== null) {
|
||||
acc[key as keyof EnvConfig] = value;
|
||||
@@ -37,19 +28,44 @@ export function initializeConfig(values: Partial<EnvConfig>): void {
|
||||
return acc;
|
||||
}, {} as Partial<EnvConfig>);
|
||||
|
||||
if (filteredValues.PORT && !filteredValues.PROXY_HOST) {
|
||||
filteredValues.PROXY_HOST = `http://localhost:${filteredValues.PORT}`;
|
||||
if (!filteredValues.PROXY_HOST) {
|
||||
filteredValues.PROXY_HOST = `http://localhost:${filteredValues.PORT || defaultConfig.PORT}`;
|
||||
}
|
||||
|
||||
envConfig = { ...defaultConfig, ...filteredValues };
|
||||
isInitialized = true;
|
||||
return { ...defaultConfig, ...filteredValues };
|
||||
}
|
||||
|
||||
export function getNextConfig(): EnvConfig {
|
||||
const env: Partial<EnvConfig> = {
|
||||
PORT: process.env.NEXT_PUBLIC_PORT,
|
||||
PROXY_HOST: process.env.NEXT_PUBLIC_PROXY_HOST,
|
||||
SERVER_API_URL: process.env.NEXT_PUBLIC_SERVER_API_URL,
|
||||
SITE_ID: process.env.NEXT_PUBLIC_SITE_ID,
|
||||
CLAIM_NAME: process.env.NEXT_PUBLIC_CLAIM_NAME,
|
||||
ACCESS_TOKEN: process.env.NEXT_PUBLIC_ACCESS_TOKEN,
|
||||
REFRESH_TOKEN: process.env.NEXT_PUBLIC_REFRESH_TOKEN,
|
||||
AUTH_USER_ID: process.env.NEXT_PUBLIC_AUTH_USER_ID,
|
||||
};
|
||||
return generateEnvConfig(env);
|
||||
}
|
||||
|
||||
export function getViteConfig(): EnvConfig {
|
||||
const env: Partial<EnvConfig> = {
|
||||
PORT: import.meta.env.VITE_PORT,
|
||||
PROXY_HOST: import.meta.env.VITE_PROXY_HOST,
|
||||
SERVER_API_URL: import.meta.env.VITE_SERVER_API_URL,
|
||||
SITE_ID: import.meta.env.VITE_SITE_ID,
|
||||
CLAIM_NAME: import.meta.env.VITE_CLAIM_NAME,
|
||||
ACCESS_TOKEN: import.meta.env.VITE_ACCESS_TOKEN,
|
||||
REFRESH_TOKEN: import.meta.env.VITE_REFRESH_TOKEN,
|
||||
AUTH_USER_ID: import.meta.env.VITE_AUTH_USER_ID,
|
||||
};
|
||||
return generateEnvConfig(env);
|
||||
}
|
||||
|
||||
export function getConfig(): EnvConfig {
|
||||
if (!isInitialized) {
|
||||
console.warn(
|
||||
"Attempted to access config before initialization. Returning default values."
|
||||
);
|
||||
if (typeof import.meta?.env !== "undefined") {
|
||||
return getViteConfig();
|
||||
}
|
||||
return envConfig;
|
||||
return getNextConfig();
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
import { initializeConfig, type EnvConfig } from "./initialize-config";
|
||||
|
||||
export function initializeNextClientConfig(): void {
|
||||
if (typeof window === "undefined") {
|
||||
console.warn("initializeNextClientConfig called on the server. Skipping.");
|
||||
return;
|
||||
}
|
||||
|
||||
const env: Partial<EnvConfig> = {
|
||||
PORT: process.env.NEXT_PUBLIC_PORT,
|
||||
PROXY_HOST: process.env.NEXT_PUBLIC_PROXY_HOST,
|
||||
SERVER_API_URL: process.env.NEXT_PUBLIC_SERVER_API_URL,
|
||||
SITE_ID: process.env.NEXT_PUBLIC_SITE_ID,
|
||||
CLAIM_NAME: process.env.NEXT_PUBLIC_CLAIM_NAME,
|
||||
ACCESS_TOKEN: process.env.NEXT_PUBLIC_ACCESS_TOKEN,
|
||||
REFRESH_TOKEN: process.env.NEXT_PUBLIC_REFRESH_TOKEN,
|
||||
AUTH_USER_ID: process.env.NEXT_PUBLIC_AUTH_USER_ID,
|
||||
};
|
||||
initializeConfig(env);
|
||||
}
|
||||
|
||||
export function initializeViteClientConfig(): void {
|
||||
if (typeof window === "undefined") {
|
||||
console.warn("initializeViteClientConfig called on the server. Skipping.");
|
||||
return;
|
||||
}
|
||||
|
||||
const env: Partial<EnvConfig> = {
|
||||
PORT: import.meta.env.VITE_PORT,
|
||||
PROXY_HOST: import.meta.env.VITE_PROXY_HOST,
|
||||
SERVER_API_URL: import.meta.env.VITE_SERVER_API_URL,
|
||||
SITE_ID: import.meta.env.VITE_SITE_ID,
|
||||
CLAIM_NAME: import.meta.env.VITE_CLAIM_NAME,
|
||||
ACCESS_TOKEN: import.meta.env.VITE_ACCESS_TOKEN,
|
||||
REFRESH_TOKEN: import.meta.env.VITE_REFRESH_TOKEN,
|
||||
AUTH_USER_ID: import.meta.env.VITE_AUTH_USER_ID,
|
||||
};
|
||||
initializeConfig(env);
|
||||
}
|
||||
@@ -51,7 +51,6 @@ class Client {
|
||||
|
||||
public static getInstance(config: ClientConfig): Client {
|
||||
if (!Client.instance) {
|
||||
console.log("getInstance >>>> config: ", config);
|
||||
Client.instance = new Client(config);
|
||||
}
|
||||
return Client.instance;
|
||||
|
||||
Reference in New Issue
Block a user