temp
This commit is contained in:
39
src/app.ts
39
src/app.ts
@@ -1,21 +1,28 @@
|
||||
// 当前的功能,把所有的模块注入到windows对象当中
|
||||
import * as WebEnv from './web-env.ts';
|
||||
import { QueryRouterServer } from '@kevisual/router/browser';
|
||||
import * as Load from '@kevisual/load/browser';
|
||||
import { Page } from './page.ts';
|
||||
|
||||
// bind to window, 必须要的获取全局的环境变量
|
||||
const { useConfigKey, useContextKey } = WebEnv;
|
||||
window.useConfigKey = useConfigKey;
|
||||
window.useContextKey = useContextKey;
|
||||
// @ts-ignore
|
||||
window.webEnv = WebEnv;
|
||||
// @ts-ignore
|
||||
window.Load = Load;
|
||||
window.QueryRouterServer = QueryRouterServer;
|
||||
|
||||
// bind to window, 获取路由对象
|
||||
useContextKey('app', () => new QueryRouterServer());
|
||||
useContextKey('page', () => {
|
||||
return new Page();
|
||||
});
|
||||
export class PageInit {
|
||||
static isInit = false;
|
||||
static init(opts?: { load?: boolean; page?: boolean }) {
|
||||
if (PageInit.isInit) {
|
||||
return;
|
||||
}
|
||||
const { load = true, page = false } = opts || {};
|
||||
PageInit.isInit = true;
|
||||
// bind to window, 必须要的获取全局的环境变量
|
||||
const { useConfigKey, useContextKey } = WebEnv;
|
||||
window.useConfigKey = useConfigKey;
|
||||
window.useContextKey = useContextKey;
|
||||
// @ts-ignore
|
||||
window.webEnv = WebEnv;
|
||||
// @ts-ignore
|
||||
load && (window.Load = Load);
|
||||
page &&
|
||||
useContextKey('page', () => {
|
||||
return new Page();
|
||||
});
|
||||
}
|
||||
}
|
||||
PageInit.init();
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
import { getPathKey } from './utils/path-key.ts';
|
||||
import { BaseLoad } from '@kevisual/load';
|
||||
|
||||
const gt = (globalThis as any) || window || self;
|
||||
type GlobalEnv = {
|
||||
name?: string;
|
||||
[key: string]: any;
|
||||
};
|
||||
// 从window对象中获取全局的环境变量,如果没有则初始化一个
|
||||
export const useEnv = (initEnv?: GlobalEnv, initKey = 'config') => {
|
||||
const env: GlobalEnv = (window as any)[initKey];
|
||||
const env: GlobalEnv = gt[initKey];
|
||||
const _env = env || initEnv;
|
||||
if (!env) {
|
||||
if (_env) {
|
||||
(window as any)[initKey] = _env;
|
||||
gt[initKey] = _env;
|
||||
} else {
|
||||
(window as any)[initKey] = {};
|
||||
gt[initKey] = {};
|
||||
}
|
||||
}
|
||||
return window[initKey] as GlobalEnv;
|
||||
return gt[initKey] as GlobalEnv;
|
||||
};
|
||||
|
||||
// 从全局环境变量中获取指定的key值,如果没有则初始化一个, key不存在,返回Env对象
|
||||
@@ -113,3 +114,25 @@ export const usePageConfig = (init?: () => {}) => {
|
||||
const { id } = getPathKey();
|
||||
return useConfigKey(id, init);
|
||||
};
|
||||
|
||||
class InitEnv {
|
||||
static isInit = false;
|
||||
|
||||
static init(opts?: { load?: boolean; page?: boolean }) {
|
||||
if (InitEnv.isInit) {
|
||||
return;
|
||||
}
|
||||
const { load = true, page = false } = opts || {};
|
||||
InitEnv.isInit = true;
|
||||
// bind to window, 必须要的获取全局的环境变量
|
||||
// @ts-ignore
|
||||
gt.useConfigKey = useConfigKey;
|
||||
// @ts-ignore
|
||||
gt.useContextKey = useContextKey;
|
||||
// @ts-ignore
|
||||
gt.webEnv = { useConfigKey, useContextKey };
|
||||
// @ts-ignore
|
||||
load && (gt.Load = BaseLoad);
|
||||
}
|
||||
}
|
||||
InitEnv.init();
|
||||
|
||||
Reference in New Issue
Block a user