import { getHeader } from "h3"; import { useRuntimeConfig, useRequestEvent } from "nuxt/app"; export const useGetGameAlias = () => { const config = useRuntimeConfig(); const baseDomain = (config.public.baseDomain || ".onstove.com") as string; // 서버 사이드에서 실행되는 경우 if (!import.meta.client) { try { const event = useRequestEvent(); if (event) { // 미들웨어에서 설정한 gameAlias가 있다면 우선 사용 if (event.context.gameAlias) { return event.context.gameAlias; } const host = getHeader(event, "host") || ""; const isGameAliasExtractable = host.includes(baseDomain); if (isGameAliasExtractable) { const subdomain = host.split(".")[0]; if (subdomain && subdomain !== "www") { return subdomain; } } } } catch (error) { console.log("useGetGameAlias server error: ", error); } } // 클라이언트 사이드에서 실행되는 경우 if (import.meta.client) { try { const host = window.location.host; const isGameAliasExtractable = host.includes(baseDomain); if (isGameAliasExtractable) { const subdomain = host.split(".")[0]; if (subdomain && subdomain !== "www") { return subdomain; } } } catch (error) { console.log("useGetGameAlias client error: ", error); } } return ""; };