From 769e863b3a1569a01b320390b007bccaa80c3458 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 4 Mar 2022 15:15:09 +0330 Subject: [PATCH] feat(router): route base types --- package/router/src/type.ts | 39 ++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/package/router/src/type.ts b/package/router/src/type.ts index 0d8fa415c..c0e9c1bf8 100644 --- a/package/router/src/type.ts +++ b/package/router/src/type.ts @@ -2,17 +2,44 @@ import '@vatr/signal/type'; declare global { interface VatrSignals { - 'vatr-router-change': unknown; + 'router-change': Route; } interface VatrRequestSignals { - 'vatr-router-change': { - pathname: string; - search: string; - hash: string; - }; + 'router-change': RequestRouteParam; } } + +export interface Route +{ + // href: https://cms.ishia.org/list/article/3/20/q=ali/?v=2#header + hostname: string; // cms.ishia.org + pathname: string; // /cms.ishia.org/list/article/3/20/q=ali/?r=1#hash1 + page?: string; // list + section?: string; // 'article' + partList: Array; // [3, 20] + optionList: ParameterList; // {q: 'ali'} + queryList: ParameterList; // {v: 2} + hash?: string; // '#header' +} + +export interface RequestRouteParam { + pathname: string; + search?: string; + hash?: string; + /** + * Update browser history state (history.pushState or history.replaceState). + */ + pushState?: boolean | 'replace'; +} + +// export interface RequestRouteParam +// { +// page?: string; +// sectionList?: Array; +// queryParamList?: ParameterList; +// } + export interface InitOptions { /** * A navigation trigger for Vatr Router that translated clicks on `` links into navigation signal.