index.ts 1.2 KB
Newer Older
V
vben 已提交
1
import type { ProjectConfig, GlobConfig, GlobEnvConfig } from '/@/types/config';
陈文彬 已提交
2 3 4

import getProjectSetting from '/@/settings/projectSetting';

5
import { getShortName } from '../../../build/getShortName';
V
vben 已提交
6
import { warn } from '/@/utils/log';
V
vben 已提交
7
import { getGlobEnvConfig, isDevMode } from '/@/utils/env';
V
vben 已提交
8 9

const reg = /[a-zA-Z\_]*/;
10 11 12 13 14

const ENV_NAME = getShortName(import.meta.env);
const ENV = ((isDevMode()
  ? getGlobEnvConfig()
  : window[ENV_NAME as any]) as unknown) as GlobEnvConfig;
V
vben 已提交
15

B
bin 已提交
16
const {
17
  VITE_GLOB_APP_TITLE,
B
bin 已提交
18 19 20
  VITE_GLOB_API_URL,
  VITE_GLOB_APP_SHORT_NAME,
  VITE_GLOB_API_URL_PREFIX,
21
} = ENV;
B
bin 已提交
22

V
vben 已提交
23
if (!reg.test(VITE_GLOB_APP_SHORT_NAME)) {
V
vben 已提交
24 25 26
  warn(
    `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`
  );
V
vben 已提交
27 28
}

V
vben 已提交
29
export const useGlobSetting = (): Readonly<GlobConfig> => {
陈文彬 已提交
30 31
  // Take global configuration
  const glob: Readonly<GlobConfig> = {
B
bin 已提交
32 33 34 35
    title: VITE_GLOB_APP_TITLE,
    apiUrl: VITE_GLOB_API_URL,
    shortName: VITE_GLOB_APP_SHORT_NAME,
    urlPrefix: VITE_GLOB_API_URL_PREFIX,
陈文彬 已提交
36
  };
V
vben 已提交
37 38 39 40 41 42
  return glob as Readonly<GlobConfig>;
};

export const useProjectSetting = (): ProjectConfig => {
  // TODO computed
  return getProjectSetting;
陈文彬 已提交
43
};