elegant-router.d.ts 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. /* eslint-disable */
  2. /* prettier-ignore */
  3. // Generated by elegant-router
  4. // Read more: https://github.com/soybeanjs/elegant-router
  5. declare module "@elegant-router/types" {
  6. type ElegantConstRoute = import('@elegant-router/vue').ElegantConstRoute;
  7. /**
  8. * route layout
  9. */
  10. export type RouteLayout = "base" | "blank";
  11. /**
  12. * route map
  13. */
  14. export type RouteMap = {
  15. "root": "/";
  16. "not-found": "/:pathMatch(.*)*";
  17. "exception": "/exception";
  18. "exception_403": "/exception/403";
  19. "exception_404": "/exception/404";
  20. "exception_500": "/exception/500";
  21. "document": "/document";
  22. "document_project": "/document/project";
  23. "document_project-link": "/document/project-link";
  24. "document_video": "/document/video";
  25. "document_vue": "/document/vue";
  26. "document_vite": "/document/vite";
  27. "document_unocss": "/document/unocss";
  28. "document_naive": "/document/naive";
  29. "document_pro-naive": "/document/pro-naive";
  30. "document_antd": "/document/antd";
  31. "document_alova": "/document/alova";
  32. "403": "/403";
  33. "404": "/404";
  34. "500": "/500";
  35. "device": "/device";
  36. "device_manage": "/device/manage";
  37. "device_terminal-manage": "/device/terminal-manage";
  38. "goods-center": "/goods-center";
  39. "goods-center_store-goods": "/goods-center/store-goods";
  40. "goods-center_type-admin": "/goods-center/type-admin";
  41. "government": "/government";
  42. "government_government-list": "/government/government-list";
  43. "government_points": "/government/points";
  44. "government_user-list": "/government/user-list";
  45. "home": "/home";
  46. "iframe-page": "/iframe-page/:url";
  47. "login": "/login/:module(pwd-login|code-login|register|reset-pwd|bind-wechat)?";
  48. "manage": "/manage";
  49. "manage_config": "/manage/config";
  50. "manage_department": "/manage/department";
  51. "manage_dict": "/manage/dict";
  52. "manage_log": "/manage/log";
  53. "manage_menu": "/manage/menu";
  54. "manage_role": "/manage/role";
  55. "manage_schedule": "/manage/schedule";
  56. "manage_user": "/manage/user";
  57. "order-manage": "/order-manage";
  58. "order-manage_normal-order": "/order-manage/normal-order";
  59. "order-manage_order-detail": "/order-manage/order-detail";
  60. "user-center": "/user-center";
  61. "user-management": "/user-management";
  62. "user-management_user-list": "/user-management/user-list";
  63. "xsb-manage": "/xsb-manage";
  64. "xsb-manage_advertisement": "/xsb-manage/advertisement";
  65. "xsb-manage_fright-config": "/xsb-manage/fright-config";
  66. "xsb-manage_search": "/xsb-manage/search";
  67. "xsb-manage_store-info": "/xsb-manage/store-info";
  68. };
  69. /**
  70. * route key
  71. */
  72. export type RouteKey = keyof RouteMap;
  73. /**
  74. * route path
  75. */
  76. export type RoutePath = RouteMap[RouteKey];
  77. /**
  78. * custom route key
  79. */
  80. export type CustomRouteKey = Extract<
  81. RouteKey,
  82. | "root"
  83. | "not-found"
  84. | "exception"
  85. | "exception_403"
  86. | "exception_404"
  87. | "exception_500"
  88. | "document"
  89. | "document_project"
  90. | "document_project-link"
  91. | "document_video"
  92. | "document_vue"
  93. | "document_vite"
  94. | "document_unocss"
  95. | "document_naive"
  96. | "document_pro-naive"
  97. | "document_antd"
  98. | "document_alova"
  99. >;
  100. /**
  101. * the generated route key
  102. */
  103. export type GeneratedRouteKey = Exclude<RouteKey, CustomRouteKey>;
  104. /**
  105. * the first level route key, which contain the layout of the route
  106. */
  107. export type FirstLevelRouteKey = Extract<
  108. RouteKey,
  109. | "403"
  110. | "404"
  111. | "500"
  112. | "device"
  113. | "goods-center"
  114. | "government"
  115. | "home"
  116. | "iframe-page"
  117. | "login"
  118. | "manage"
  119. | "order-manage"
  120. | "user-center"
  121. | "user-management"
  122. | "xsb-manage"
  123. >;
  124. /**
  125. * the custom first level route key
  126. */
  127. export type CustomFirstLevelRouteKey = Extract<
  128. CustomRouteKey,
  129. | "root"
  130. | "not-found"
  131. | "exception"
  132. | "document"
  133. >;
  134. /**
  135. * the last level route key, which has the page file
  136. */
  137. export type LastLevelRouteKey = Extract<
  138. RouteKey,
  139. | "403"
  140. | "404"
  141. | "500"
  142. | "iframe-page"
  143. | "login"
  144. | "device_manage"
  145. | "device_terminal-manage"
  146. | "goods-center_store-goods"
  147. | "goods-center_type-admin"
  148. | "government_government-list"
  149. | "government_points"
  150. | "government_user-list"
  151. | "home"
  152. | "manage_config"
  153. | "manage_department"
  154. | "manage_dict"
  155. | "manage_log"
  156. | "manage_menu"
  157. | "manage_role"
  158. | "manage_schedule"
  159. | "manage_user"
  160. | "order-manage_normal-order"
  161. | "order-manage_order-detail"
  162. | "user-center"
  163. | "user-management_user-list"
  164. | "xsb-manage_advertisement"
  165. | "xsb-manage_fright-config"
  166. | "xsb-manage_search"
  167. | "xsb-manage_store-info"
  168. >;
  169. /**
  170. * the custom last level route key
  171. */
  172. export type CustomLastLevelRouteKey = Extract<
  173. CustomRouteKey,
  174. | "root"
  175. | "not-found"
  176. | "exception_403"
  177. | "exception_404"
  178. | "exception_500"
  179. | "document_project"
  180. | "document_project-link"
  181. | "document_video"
  182. | "document_vue"
  183. | "document_vite"
  184. | "document_unocss"
  185. | "document_naive"
  186. | "document_pro-naive"
  187. | "document_antd"
  188. | "document_alova"
  189. >;
  190. /**
  191. * the single level route key
  192. */
  193. export type SingleLevelRouteKey = FirstLevelRouteKey & LastLevelRouteKey;
  194. /**
  195. * the custom single level route key
  196. */
  197. export type CustomSingleLevelRouteKey = CustomFirstLevelRouteKey & CustomLastLevelRouteKey;
  198. /**
  199. * the first level route key, but not the single level
  200. */
  201. export type FirstLevelRouteNotSingleKey = Exclude<FirstLevelRouteKey, SingleLevelRouteKey>;
  202. /**
  203. * the custom first level route key, but not the single level
  204. */
  205. export type CustomFirstLevelRouteNotSingleKey = Exclude<CustomFirstLevelRouteKey, CustomSingleLevelRouteKey>;
  206. /**
  207. * the center level route key
  208. */
  209. export type CenterLevelRouteKey = Exclude<GeneratedRouteKey, FirstLevelRouteKey | LastLevelRouteKey>;
  210. /**
  211. * the custom center level route key
  212. */
  213. export type CustomCenterLevelRouteKey = Exclude<CustomRouteKey, CustomFirstLevelRouteKey | CustomLastLevelRouteKey>;
  214. /**
  215. * the center level route key
  216. */
  217. type GetChildRouteKey<K extends RouteKey, T extends RouteKey = RouteKey> = T extends `${K}_${infer R}`
  218. ? R extends `${string}_${string}`
  219. ? never
  220. : T
  221. : never;
  222. /**
  223. * the single level route
  224. */
  225. type SingleLevelRoute<K extends SingleLevelRouteKey = SingleLevelRouteKey> = K extends string
  226. ? Omit<ElegantConstRoute, 'children'> & {
  227. name: K;
  228. path: RouteMap[K];
  229. component: `layout.${RouteLayout}$view.${K}`;
  230. }
  231. : never;
  232. /**
  233. * the last level route
  234. */
  235. type LastLevelRoute<K extends GeneratedRouteKey> = K extends LastLevelRouteKey
  236. ? Omit<ElegantConstRoute, 'children'> & {
  237. name: K;
  238. path: RouteMap[K];
  239. component: `view.${K}`;
  240. }
  241. : never;
  242. /**
  243. * the center level route
  244. */
  245. type CenterLevelRoute<K extends GeneratedRouteKey> = K extends CenterLevelRouteKey
  246. ? Omit<ElegantConstRoute, 'component'> & {
  247. name: K;
  248. path: RouteMap[K];
  249. children: (CenterLevelRoute<GetChildRouteKey<K>> | LastLevelRoute<GetChildRouteKey<K>>)[];
  250. }
  251. : never;
  252. /**
  253. * the multi level route
  254. */
  255. type MultiLevelRoute<K extends FirstLevelRouteNotSingleKey = FirstLevelRouteNotSingleKey> = K extends string
  256. ? ElegantConstRoute & {
  257. name: K;
  258. path: RouteMap[K];
  259. component: `layout.${RouteLayout}`;
  260. children: (CenterLevelRoute<GetChildRouteKey<K>> | LastLevelRoute<GetChildRouteKey<K>>)[];
  261. }
  262. : never;
  263. /**
  264. * the custom first level route
  265. */
  266. type CustomSingleLevelRoute<K extends CustomFirstLevelRouteKey = CustomFirstLevelRouteKey> = K extends string
  267. ? Omit<ElegantConstRoute, 'children'> & {
  268. name: K;
  269. path: RouteMap[K];
  270. component?: `layout.${RouteLayout}$view.${LastLevelRouteKey}`;
  271. }
  272. : never;
  273. /**
  274. * the custom last level route
  275. */
  276. type CustomLastLevelRoute<K extends CustomRouteKey> = K extends CustomLastLevelRouteKey
  277. ? Omit<ElegantConstRoute, 'children'> & {
  278. name: K;
  279. path: RouteMap[K];
  280. component?: `view.${LastLevelRouteKey}`;
  281. }
  282. : never;
  283. /**
  284. * the custom center level route
  285. */
  286. type CustomCenterLevelRoute<K extends CustomRouteKey> = K extends CustomCenterLevelRouteKey
  287. ? Omit<ElegantConstRoute, 'component'> & {
  288. name: K;
  289. path: RouteMap[K];
  290. children: (CustomCenterLevelRoute<GetChildRouteKey<K>> | CustomLastLevelRoute<GetChildRouteKey<K>>)[];
  291. }
  292. : never;
  293. /**
  294. * the custom multi level route
  295. */
  296. type CustomMultiLevelRoute<K extends CustomFirstLevelRouteNotSingleKey = CustomFirstLevelRouteNotSingleKey> =
  297. K extends string
  298. ? ElegantConstRoute & {
  299. name: K;
  300. path: RouteMap[K];
  301. component: `layout.${RouteLayout}`;
  302. children: (CustomCenterLevelRoute<GetChildRouteKey<K>> | CustomLastLevelRoute<GetChildRouteKey<K>>)[];
  303. }
  304. : never;
  305. /**
  306. * the custom route
  307. */
  308. type CustomRoute = CustomSingleLevelRoute | CustomMultiLevelRoute;
  309. /**
  310. * the generated route
  311. */
  312. type GeneratedRoute = SingleLevelRoute | MultiLevelRoute;
  313. /**
  314. * the elegant route
  315. */
  316. type ElegantRoute = GeneratedRoute | CustomRoute;
  317. }