Commit 459664e9 authored by timel's avatar timel

feat: add useEnv

parent 645c8a1d
Pipeline #21139 passed with stages
in 14 minutes and 10 seconds
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
/// <reference types="vite/client" /> /// <reference types="vite/client" />
interface ImportMetaEnv { interface ImportMetaEnv {
readonly VITE_IS_AI_MODE: string; readonly VITE_IS_AI_MODE: boolean;
readonly VITE_IS_AI_FIRST: string; readonly VITE_IS_AI_FIRST: boolean;
readonly VITE_AI_MODE_DEFAULT_DECK: string; readonly VITE_AI_MODE_DEFAULT_DECK: string;
} }
......
export * from "./useApp"; export * from "./useApp";
export * from "./useEnv";
export * from "./useAutoMode"; export * from "./useAutoMode";
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
* 旨在跳过登录界面,直接进入游戏(和AI对战、后续可能增加自动的PVP)。 * 旨在跳过登录界面,直接进入游戏(和AI对战、后续可能增加自动的PVP)。
* 仅在开发环境下生效,便于开发者快速调节决斗界面。 * 仅在开发环境下生效,便于开发者快速调节决斗界面。
*/ */
import { useEnv } from ".";
const { DEV, VITE_IS_AI_MODE, VITE_IS_AI_FIRST, VITE_AI_MODE_DEFAULT_DECK } =
useEnv();
interface AutoModeConfig { interface AutoModeConfig {
defaultPlayer?: string; defaultPlayer?: string;
...@@ -20,17 +24,17 @@ const autoModeConfig: AutoModeConfig = { ...@@ -20,17 +24,17 @@ const autoModeConfig: AutoModeConfig = {
const aiModeConfig: AutoModeConfig = { const aiModeConfig: AutoModeConfig = {
defaultPlayer: "AiKiller", defaultPlayer: "AiKiller",
defaultDeck: import.meta.env.VITE_AI_MODE_DEFAULT_DECK ?? "hero", defaultDeck: VITE_AI_MODE_DEFAULT_DECK ?? "hero",
defaultPassword: "AI", defaultPassword: "AI",
defaultMora: "scissors", defaultMora: "scissors",
isAiMode: true, isAiMode: true,
isAiFirst: import.meta.env.VITE_IS_AI_FIRST === "true", isAiFirst: VITE_IS_AI_FIRST,
}; };
export function useAutoMode(): AutoModeConfig { export function useAutoMode(): AutoModeConfig {
if (!import.meta.env.DEV) return {}; if (!DEV) return {};
if (import.meta.env.VITE_IS_AI_MODE === "true") { if (VITE_IS_AI_MODE) {
return aiModeConfig; return aiModeConfig;
} }
......
/**
* @description 将 vite 的原始环境变量转成正确的类型
* @returns 转换成正确类型的 vite 环境变量
*/
export const useEnv = (): ImportMetaEnv => {
const env = import.meta.env;
const ret: any = {};
for (const envKey of Object.keys(env)) {
let envValue = env[envKey];
// 转成正确的布尔类型
envValue =
envValue === "true" ? true : envValue === "false" ? false : envValue;
ret[envKey] = envValue;
}
return ret;
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment