@fukict/router 0.1.3 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Link.js CHANGED
@@ -128,10 +128,10 @@ export class Link extends Fukict {
128
128
  href,
129
129
  class: classes.join(' '),
130
130
  'on:click': this.handleClick,
131
- }, Array.isArray(this.slots.default)
132
- ? this.slots.default
133
- : this.slots.default
134
- ? [this.slots.default]
131
+ }, Array.isArray(this.$slots.default)
132
+ ? this.$slots.default
133
+ : this.$slots.default
134
+ ? [this.$slots.default]
135
135
  : []);
136
136
  }
137
137
  }
package/dist/Link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,25 @@ import type { Location, Route, RouteConfig, RouteMeta, RouteProps } from './type
5
5
  * 路由组件基类
6
6
  *
7
7
  * 提供路由相关的上下文和工具方法
8
+ *
9
+ * @template TParams - 路由参数类型(如 { id: string })
10
+ * @template TQuery - 查询参数类型(如 { q?: string; page?: string })
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // 定义路由参数类型
15
+ * interface UserParams { id: string }
16
+ * interface UserQuery { tab?: string }
17
+ *
18
+ * class UserPage extends RouteComponent<UserParams, UserQuery> {
19
+ * render() {
20
+ * const { id } = this.params; // ✅ TypeScript 知道 id 存在
21
+ * const { tab } = this.query; // ✅ TypeScript 知道 tab 可选
22
+ * }
23
+ * }
24
+ * ```
8
25
  */
9
- export declare abstract class RouteComponent extends Fukict<RouteProps> {
26
+ export declare abstract class RouteComponent<TParams = Record<string, string>, TQuery = Record<string, string>> extends Fukict<RouteProps> {
10
27
  /**
11
28
  * Router 实例
12
29
  */
@@ -21,12 +38,16 @@ export declare abstract class RouteComponent extends Fukict<RouteProps> {
21
38
  get route(): Route;
22
39
  /**
23
40
  * 路由参数(如 { id: '123' })
41
+ *
42
+ * 类型由泛型 TParams 定义,提供完整的类型提示
24
43
  */
25
- get params(): Record<string, string>;
44
+ get params(): TParams;
26
45
  /**
27
46
  * 查询参数(如 { page: '1' })
47
+ *
48
+ * 类型由泛型 TQuery 定义,提供完整的类型提示
28
49
  */
29
- get query(): Record<string, string>;
50
+ get query(): TQuery;
30
51
  /**
31
52
  * 路由元信息
32
53
  */
@@ -50,21 +71,21 @@ export declare abstract class RouteComponent extends Fukict<RouteProps> {
50
71
  /**
51
72
  * 更新查询参数(保留其他参数)
52
73
  */
53
- updateQuery(query: Record<string, string>): void;
74
+ updateQuery(query: Partial<TQuery>): void;
54
75
  /**
55
76
  * 更新路由参数
56
77
  */
57
- updateParams(params: Record<string, string>): void;
78
+ updateParams(params: Partial<TParams>): void;
58
79
  /**
59
80
  * 路由参数变化时的钩子
60
81
  * 子类可以重写此方法
61
82
  */
62
- routeParamsChanged?(newParams: Record<string, string>, oldParams: Record<string, string>): void;
83
+ routeParamsChanged?(newParams: TParams, oldParams: TParams): void;
63
84
  /**
64
85
  * 查询参数变化时的钩子
65
86
  * 子类可以重写此方法
66
87
  */
67
- routeQueryChanged?(newQuery: Record<string, string>, oldQuery: Record<string, string>): void;
88
+ routeQueryChanged?(newQuery: TQuery, oldQuery: TQuery): void;
68
89
  /**
69
90
  * 重写 update 方法,添加参数变化检测
70
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../src/RouteComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,WAAW,EAEX,SAAS,EACT,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,MAAM,CAAC,UAAU,CAAC;IAC7D;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,WAAW,GAAG,IAAI,CAEhC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEnC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAElC;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIvC;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAI1C;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAWhD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAmBlD;;;OAGG;IACH,kBAAkB,CAAC,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,IAAI;IAEP;;;OAGG;IACH,iBAAiB,CAAC,CAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI;IAEP;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAsB/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,KAAK;CACzB"}
1
+ {"version":3,"file":"RouteComponent.d.ts","sourceRoot":"","sources":["../src/RouteComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,WAAW,EAEX,SAAS,EACT,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,cAAc,CAClC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAC/B,SAAQ,MAAM,CAAC,UAAU,CAAC;IAC1B;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,WAAW,GAAG,IAAI,CAEhC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED;;;;OAIG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIvC;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAI1C;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IAWzC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAqB5C;;;OAGG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAEjE;;;OAGG;IACH,iBAAiB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAE5D;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAsB/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,KAAK;CACzB"}
@@ -3,6 +3,23 @@ import { Fukict } from '@fukict/basic';
3
3
  * 路由组件基类
4
4
  *
5
5
  * 提供路由相关的上下文和工具方法
6
+ *
7
+ * @template TParams - 路由参数类型(如 { id: string })
8
+ * @template TQuery - 查询参数类型(如 { q?: string; page?: string })
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // 定义路由参数类型
13
+ * interface UserParams { id: string }
14
+ * interface UserQuery { tab?: string }
15
+ *
16
+ * class UserPage extends RouteComponent<UserParams, UserQuery> {
17
+ * render() {
18
+ * const { id } = this.params; // ✅ TypeScript 知道 id 存在
19
+ * const { tab } = this.query; // ✅ TypeScript 知道 tab 可选
20
+ * }
21
+ * }
22
+ * ```
6
23
  */
7
24
  export class RouteComponent extends Fukict {
8
25
  /**
@@ -25,12 +42,16 @@ export class RouteComponent extends Fukict {
25
42
  }
26
43
  /**
27
44
  * 路由参数(如 { id: '123' })
45
+ *
46
+ * 类型由泛型 TParams 定义,提供完整的类型提示
28
47
  */
29
48
  get params() {
30
49
  return this.route.params;
31
50
  }
32
51
  /**
33
52
  * 查询参数(如 { page: '1' })
53
+ *
54
+ * 类型由泛型 TQuery 定义,提供完整的类型提示
34
55
  */
35
56
  get query() {
36
57
  return this.route.query;
@@ -89,7 +110,9 @@ export class RouteComponent extends Fukict {
89
110
  // 使用新参数构建路径
90
111
  let path = matched.path;
91
112
  for (const [key, value] of Object.entries(params)) {
92
- path = path.replace(`:${key}`, value);
113
+ if (typeof value === 'string') {
114
+ path = path.replace(`:${key}`, value);
115
+ }
93
116
  }
94
117
  this.push({
95
118
  path,
@@ -121,13 +144,15 @@ export class RouteComponent extends Fukict {
121
144
  * 比较两个参数对象是否相等
122
145
  */
123
146
  isParamsEqual(params1, params2) {
124
- const keys1 = Object.keys(params1);
125
- const keys2 = Object.keys(params2);
147
+ const obj1 = params1;
148
+ const obj2 = params2;
149
+ const keys1 = Object.keys(obj1);
150
+ const keys2 = Object.keys(obj2);
126
151
  if (keys1.length !== keys2.length) {
127
152
  return false;
128
153
  }
129
154
  for (const key of keys1) {
130
- if (params1[key] !== params2[key]) {
155
+ if (obj1[key] !== obj2[key]) {
131
156
  return false;
132
157
  }
133
158
  }
@@ -137,13 +162,15 @@ export class RouteComponent extends Fukict {
137
162
  * 比较两个查询参数对象是否相等
138
163
  */
139
164
  isQueryEqual(query1, query2) {
140
- const keys1 = Object.keys(query1);
141
- const keys2 = Object.keys(query2);
165
+ const obj1 = query1;
166
+ const obj2 = query2;
167
+ const keys1 = Object.keys(obj1);
168
+ const keys2 = Object.keys(obj2);
142
169
  if (keys1.length !== keys2.length) {
143
170
  return false;
144
171
  }
145
172
  for (const key of keys1) {
146
- if (query1[key] !== query2[key]) {
173
+ if (obj1[key] !== obj2[key]) {
147
174
  return false;
148
175
  }
149
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouteComponent.js","sourceRoot":"","sources":["../src/RouteComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteComponent.js","sourceRoot":"","sources":["../src/RouteComponent.ts"],"names":[],"mappings":"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"}
package/dist/matcher.d.ts CHANGED
@@ -19,8 +19,44 @@ export declare class RouteMatcher {
19
19
  constructor(routes: RouteConfig[], parentPath?: string);
20
20
  /**
21
21
  * 编译路由配置
22
+ *
23
+ * 支持两种路径配置方式:
24
+ * 1. 绝对路径:以 "/" 开头,如 "/home", "/user/:id"
25
+ * 2. 相对路径:不以 "/" 开头,会自动拼接父路径,如 "home", "user/:id"
26
+ *
27
+ * 特殊情况:
28
+ * - 空字符串 "" 表示 index 路由,匹配父路径本身
22
29
  */
23
30
  private compile;
31
+ /**
32
+ * 解析路径(支持相对路径和绝对路径)
33
+ *
34
+ * @param parentPath 父路径
35
+ * @param childPath 子路径(可以是相对或绝对路径)
36
+ * @returns 规范化后的完整路径
37
+ */
38
+ private resolvePath;
39
+ /**
40
+ * 按优先级排序编译后的路由
41
+ *
42
+ * 优先级规则:
43
+ * 1. 静态路径 > 动态参数 > 通配符
44
+ * 2. 路径段数越多优先级越高(更具体的匹配)
45
+ * 3. 同等条件下,按定义顺序(先定义的优先)
46
+ */
47
+ private sortByPriority;
48
+ /**
49
+ * 计算路由的优先级分数
50
+ *
51
+ * 优先级规则(从高到低):
52
+ * 1. 静态路径 > 动态参数 > 通配符
53
+ * 2. 更长的路径 > 更短的路径(但通配符除外)
54
+ * 3. 叶子路由 > 有子路由的父路由
55
+ *
56
+ * @param segments 路径段列表
57
+ * @param config 路由配置(用于检查是否有子路由)
58
+ */
59
+ private calculatePriority;
24
60
  /**
25
61
  * 编译单个路由配置
26
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoDvD;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,OAAO,CAAC,cAAc,CAAuB;IAE7C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAgB;IAE9B;;;;OAIG;gBACS,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU,GAAE,MAAW;IAK1D;;OAEG;IACH,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,OAAO,CAAC,YAAY;IAiCpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgClB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,IAAI;IA0BxC;;OAEG;IACH,OAAO,CAAC,eAAe;IAoDvB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAS5C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM;CAU5E"}
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA8DvD;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,OAAO,CAAC,cAAc,CAAuB;IAE7C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAgB;IAE9B;;;;OAIG;gBACS,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU,GAAE,MAAW;IAK1D;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO;IAqBf;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsCpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgClB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,IAAI;IA0BxC;;OAEG;IACH,OAAO,CAAC,eAAe;IAoDvB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAS5C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM;CAU5E"}
package/dist/matcher.js CHANGED
@@ -21,10 +21,18 @@ export class RouteMatcher {
21
21
  }
22
22
  /**
23
23
  * 编译路由配置
24
+ *
25
+ * 支持两种路径配置方式:
26
+ * 1. 绝对路径:以 "/" 开头,如 "/home", "/user/:id"
27
+ * 2. 相对路径:不以 "/" 开头,会自动拼接父路径,如 "home", "user/:id"
28
+ *
29
+ * 特殊情况:
30
+ * - 空字符串 "" 表示 index 路由,匹配父路径本身
24
31
  */
25
32
  compile(routes, parentPath) {
26
33
  for (const route of routes) {
27
- const fullPath = this.normalizePath(parentPath + route.path);
34
+ // 计算完整路径
35
+ const fullPath = this.resolvePath(parentPath, route.path);
28
36
  const compiled = this.compileRoute(route, fullPath);
29
37
  this.compiledRoutes.push(compiled);
30
38
  // 递归编译子路由
@@ -34,6 +42,81 @@ export class RouteMatcher {
34
42
  this.compiledRoutes.push(...childMatcher.compiledRoutes);
35
43
  }
36
44
  }
45
+ // 按优先级排序(只在顶层排序一次)
46
+ if (parentPath === '') {
47
+ this.sortByPriority();
48
+ }
49
+ }
50
+ /**
51
+ * 解析路径(支持相对路径和绝对路径)
52
+ *
53
+ * @param parentPath 父路径
54
+ * @param childPath 子路径(可以是相对或绝对路径)
55
+ * @returns 规范化后的完整路径
56
+ */
57
+ resolvePath(parentPath, childPath) {
58
+ // 空字符串表示 index 路由,返回父路径
59
+ if (childPath === '') {
60
+ return this.normalizePath(parentPath || '/');
61
+ }
62
+ // 绝对路径(以 "/" 开头):保持原有行为,直接拼接
63
+ if (childPath.startsWith('/')) {
64
+ return this.normalizePath(parentPath + childPath);
65
+ }
66
+ // 相对路径:拼接父路径和子路径
67
+ const separator = parentPath.endsWith('/') ? '' : '/';
68
+ return this.normalizePath(parentPath + separator + childPath);
69
+ }
70
+ /**
71
+ * 按优先级排序编译后的路由
72
+ *
73
+ * 优先级规则:
74
+ * 1. 静态路径 > 动态参数 > 通配符
75
+ * 2. 路径段数越多优先级越高(更具体的匹配)
76
+ * 3. 同等条件下,按定义顺序(先定义的优先)
77
+ */
78
+ sortByPriority() {
79
+ this.compiledRoutes.sort((a, b) => b.priority - a.priority);
80
+ }
81
+ /**
82
+ * 计算路由的优先级分数
83
+ *
84
+ * 优先级规则(从高到低):
85
+ * 1. 静态路径 > 动态参数 > 通配符
86
+ * 2. 更长的路径 > 更短的路径(但通配符除外)
87
+ * 3. 叶子路由 > 有子路由的父路由
88
+ *
89
+ * @param segments 路径段列表
90
+ * @param config 路由配置(用于检查是否有子路由)
91
+ */
92
+ calculatePriority(segments, config) {
93
+ // 检查是否包含通配符
94
+ const hasWildcard = segments.some(s => s.isWildcard);
95
+ // 通配符路由的基础优先级最低
96
+ if (hasWildcard) {
97
+ return -1000;
98
+ }
99
+ let priority = 0;
100
+ // 基础分数:静态路径段数量(index 路由也算静态)
101
+ // 即使 segments 为空(index 路由),也给基础分
102
+ priority += 1000;
103
+ // 每个段的类型分数
104
+ for (const segment of segments) {
105
+ if (segment.isDynamic) {
106
+ // 动态参数中等优先级
107
+ priority += 10;
108
+ }
109
+ else {
110
+ // 静态段最高优先级
111
+ priority += 50;
112
+ }
113
+ }
114
+ // 有子路由的父路由优先级降低
115
+ // 这样 index 子路由(没有子路由)会优先匹配
116
+ if (config.children && config.children.length > 0) {
117
+ priority -= 1;
118
+ }
119
+ return priority;
37
120
  }
38
121
  /**
39
122
  * 编译单个路由配置
@@ -61,11 +144,15 @@ export class RouteMatcher {
61
144
  }
62
145
  // 构建正则表达式
63
146
  const regex = this.buildRegex(segments);
147
+ // 计算优先级
148
+ const priority = this.calculatePriority(segments, config);
64
149
  return {
65
150
  config,
66
151
  segments,
67
152
  regex,
68
153
  paramNames,
154
+ fullPath,
155
+ priority,
69
156
  };
70
157
  }
71
158
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export declare const METADATA: {
6
6
  readonly name: "@fukict/router";
7
- readonly version: "0.1.2";
7
+ readonly version: "0.1.6";
8
8
  readonly description: "Router for Fukict framework with nested routing and lazy loading";
9
9
  readonly author: "Fukict Team";
10
10
  readonly license: "MIT";
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;CASX,CAAC"}
package/dist/metadata.js CHANGED
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export const METADATA = {
6
6
  name: '@fukict/router',
7
- version: '0.1.2',
7
+ version: '0.1.6',
8
8
  description: 'Router for Fukict framework with nested routing and lazy loading',
9
9
  author: 'Fukict Team',
10
10
  license: 'MIT',
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,kEAAkE;IAC/E,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,sCAAsC;CAC1C,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;IAChB,WAAW,EACT,kEAAkE;IACpE,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,sCAAsC;CAC1C,CAAC"}
package/dist/types.d.ts CHANGED
@@ -175,9 +175,11 @@ export interface RouterOptions {
175
175
  }
176
176
  /**
177
177
  * 路由组件类的构造函数类型
178
+ *
179
+ * 使用 unknown 泛型参数以支持任意 params/query 类型的组件
178
180
  */
179
- export interface RouteComponentClass {
180
- new (props: RouteProps): RouteComponent;
181
+ export interface RouteComponentClass<TParams = unknown, TQuery = unknown> {
182
+ new (props: RouteProps): RouteComponent<TParams, TQuery>;
181
183
  }
182
184
  /**
183
185
  * 路由组件的 props 类型
@@ -190,8 +192,11 @@ export interface RouteProps {
190
192
  }
191
193
  /**
192
194
  * 路由组件基类的抽象接口
195
+ *
196
+ * @template TParams - 路由参数类型(如 { id: string })
197
+ * @template TQuery - 查询参数类型(如 { q?: string; page?: string })
193
198
  */
194
- export interface RouteComponent {
199
+ export interface RouteComponent<TParams = Record<string, string>, TQuery = Record<string, string>> {
195
200
  /**
196
201
  * Router 实例
197
202
  */
@@ -207,11 +212,11 @@ export interface RouteComponent {
207
212
  /**
208
213
  * 路由参数
209
214
  */
210
- params: Record<string, string>;
215
+ params: TParams;
211
216
  /**
212
217
  * 查询参数
213
218
  */
214
- query: Record<string, string>;
219
+ query: TQuery;
215
220
  /**
216
221
  * 路由元信息
217
222
  */
@@ -235,19 +240,19 @@ export interface RouteComponent {
235
240
  /**
236
241
  * 更新查询参数(保留其他参数)
237
242
  */
238
- updateQuery(query: Record<string, string>): void;
243
+ updateQuery(query: Partial<TQuery>): void;
239
244
  /**
240
245
  * 更新路由参数
241
246
  */
242
- updateParams(params: Record<string, string>): void;
247
+ updateParams(params: Partial<TParams>): void;
243
248
  /**
244
249
  * 路由参数变化时的钩子
245
250
  */
246
- routeParamsChanged?(newParams: Record<string, string>, oldParams: Record<string, string>): void;
251
+ routeParamsChanged?(newParams: TParams, oldParams: TParams): void;
247
252
  /**
248
253
  * 查询参数变化时的钩子
249
254
  */
250
- routeQueryChanged?(newQuery: Record<string, string>, oldQuery: Record<string, string>): void;
255
+ routeQueryChanged?(newQuery: TQuery, oldQuery: TQuery): void;
251
256
  /**
252
257
  * 组件更新方法(由 Router 调用)
253
258
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fukict/router",
3
- "version": "0.1.3",
3
+ "version": "0.1.6",
4
4
  "description": "Router for Fukict framework with nested routing and lazy loading",
5
5
  "keywords": [
6
6
  "fukict",
@@ -37,7 +37,7 @@
37
37
  "README.md"
38
38
  ],
39
39
  "dependencies": {
40
- "@fukict/basic": "0.1.3"
40
+ "@fukict/basic": "0.1.6"
41
41
  },
42
42
  "devDependencies": {
43
43
  "typescript": "^5.6.3"