From e4768b63603c50238dacd19e3d5c43ef6da6610b Mon Sep 17 00:00:00 2001 From: xion Date: Sat, 24 May 2025 17:10:13 +0800 Subject: [PATCH] merge --- package.json | 10 +--------- rollup.config.js | 32 -------------------------------- src/app.ts | 28 ---------------------------- src/page.ts | 17 +++++++++++------ src/web.ts | 14 -------------- 5 files changed, 12 insertions(+), 89 deletions(-) delete mode 100644 src/app.ts delete mode 100644 src/web.ts diff --git a/package.json b/package.json index 2d433cf..2aba3fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/store", - "version": "0.0.6", + "version": "0.0.7", "main": "dist/store.js", "module": "dist/store.js", "types": "dist/store.d.ts", @@ -70,14 +70,6 @@ "./web-page.js": { "import": "./dist/web-page.js", "require": "./dist/web-page.js" - }, - "./web": { - "import": "./dist/web.js", - "require": "./dist/web.js" - }, - "./react": { - "import": "./dist-react/store-react.js", - "types": "./dist-react/index.d.ts" } }, "dependencies": {} diff --git a/rollup.config.js b/rollup.config.js index 6a3536b..dec1ea2 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -62,36 +62,4 @@ export default [ }, plugins: [dts()], }, - { - input: 'src/web.ts', - output: { - file: 'dist/web.js', - format: 'es', - }, - plugins: [resolve({ browser: true }), commonjs(), typescript()], - }, - { - input: 'src/web.ts', - output: { - file: 'dist/web.d.ts', - format: 'es', - }, - plugins: [dts()], - }, - { - input: 'src/app.ts', - output: { - file: 'dist/app.js', - format: 'iife', - }, - plugins: [resolve({ browser: true }), commonjs(), typescript(), terser()], - }, - { - input: 'src/app.ts', - output: { - file: 'dist/app.d.ts', - format: 'es', - }, - plugins: [dts()], - }, ]; diff --git a/src/app.ts b/src/app.ts deleted file mode 100644 index 9b9c98a..0000000 --- a/src/app.ts +++ /dev/null @@ -1,28 +0,0 @@ -// 当前的功能,把所有的模块注入到windows对象当中 -import * as WebEnv from './web-env.ts'; -import * as Load from '@kevisual/load/browser'; -import { Page } from './page.ts'; - -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(); diff --git a/src/page.ts b/src/page.ts index 4a02144..d17c013 100644 --- a/src/page.ts +++ b/src/page.ts @@ -277,7 +277,13 @@ export class Page { */ replace(path: string, state?: any, check?: boolean) { let _check = check ?? true; - window.history.replaceState(state, '', this.basename + path); + let newPath = this.basename + path; + if (path.startsWith('http')) { + const url = new URL(path); + const origin = url.origin; + newPath = url.toString().replace(origin, ''); + } + window.history.replaceState(state, '', newPath); if (_check) { this.popstate({ state } as any, { type: 'all' }); } @@ -317,17 +323,16 @@ export const getHistoryState = >() => { * 设置history state * @param state */ -export const setHistoryState = (state: any) => { +export const setHistoryState = (state: any, url?: string) => { const history = window.history; const oldState = getHistoryState(); - // 只更新 state 而不改变 URL - history.replaceState({ ...oldState, ...state }, '', window.location.href); + history.replaceState({ ...oldState, ...state }, '', url || window.location.href); }; /** * 清除history state */ -export const clearHistoryState = () => { +export const clearHistoryState = (url?: string) => { const history = window.history; - history.replaceState({}, '', window.location.href); + history.replaceState({}, '', url || window.location.href); }; diff --git a/src/web.ts b/src/web.ts deleted file mode 100644 index b659f00..0000000 --- a/src/web.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Page } from './page.ts'; -import * as WebEnv from './web-env.ts'; - -import { nanoid } from 'nanoid'; -import * as PathToREgexp from 'path-to-regexp'; -import * as Load from '@kevisual/load/browser'; - -export const WebModule = { - Page, - WebEnv, - nanoid, - PathToREgexp, - Load, -};