uni-simple-router.d.ts 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. export declare interface AppConfig {
  2. registerLoadingPage?: boolean;
  3. loadingPageStyle?: () => object;
  4. loadingPageHook?: (view: any) => void;
  5. launchedHook?: () => void;
  6. animation?: startAnimationRule;
  7. }
  8. export declare interface appletConfig {
  9. animationDuration?: number;
  10. }
  11. export declare interface appletsVueHookConfig {
  12. app: appVueHookConfig;
  13. page: pageVueHookConfig;
  14. component: baseAppHookConfig[];
  15. }
  16. export declare interface appVueHookConfig extends baseAppHookConfig {
  17. onLaunch: Array<hookObjectRule | Function>;
  18. onShow: Array<hookObjectRule | Function>;
  19. onHide: Array<hookObjectRule | Function>;
  20. }
  21. export declare type appVueSortHookRule = 'beforeCreate' | 'created' | 'beforeMount' | 'mounted' | 'onLaunch' | 'onShow' | 'onHide' | 'beforeDestroy' | 'destroyed';
  22. export declare type backTypeRule = 'backbutton' | 'navigateBack';
  23. export declare interface baseAppHookConfig {
  24. [key: string]: Array<hookObjectRule | Function>;
  25. created: Array<hookObjectRule | Function>;
  26. beforeMount: Array<hookObjectRule | Function>;
  27. mounted: Array<hookObjectRule | Function>;
  28. beforeDestroy: Array<hookObjectRule | Function>;
  29. destroyed: Array<hookObjectRule | Function>;
  30. }
  31. export declare type comVueSortHookRule = 'beforeCreate' | 'created' | 'beforeMount' | 'mounted' | 'beforeDestroy' | 'destroyed';
  32. export declare function createRouter(params: InstantiateConfig): Router;
  33. export declare interface debuggerArrayConfig {
  34. error?: boolean;
  35. warn?: boolean;
  36. log?: boolean;
  37. }
  38. export declare type debuggerConfig = boolean | debuggerArrayConfig;
  39. export declare interface endAnimationRule {
  40. animationType?: endAnimationType;
  41. animationDuration?: number;
  42. }
  43. export declare type endAnimationType = 'slide-out-right' | 'slide-out-left' | 'slide-out-top' | 'slide-out-bottom' | 'pop-out' | 'fade-out' | 'zoom-in' | 'zoom-fade-in' | 'none';
  44. export declare type guardHookRule = (to: totalNextRoute, from: totalNextRoute, next: (rule?: navtoRule | false) => void) => void;
  45. export declare interface H5Config {
  46. paramsToQuery?: boolean;
  47. vueRouterDev?: boolean;
  48. vueNext?: boolean;
  49. mode?: string;
  50. base?: string;
  51. linkActiveClass?: string;
  52. linkExactActiveClass?: string;
  53. scrollBehavior?: Function;
  54. fallback?: boolean;
  55. }
  56. export declare interface h5NextRule {
  57. fullPath?: string | undefined;
  58. hash?: string | undefined;
  59. matched?: Array<object>;
  60. meta?: object;
  61. name?: undefined | string;
  62. type?: undefined | string;
  63. }
  64. export declare type hookListRule = Array<(router: Router, to: totalNextRoute, from: totalNextRoute, toRoute: RoutesRule, next: Function) => void>;
  65. export declare interface hookObjectRule {
  66. options: Array<any>;
  67. hook: Function;
  68. }
  69. export declare enum hookToggle {
  70. 'beforeHooks' = "beforeEach",
  71. 'afterHooks' = "afterEach",
  72. 'enterHooks' = "beforeEnter"
  73. }
  74. export declare interface InstantiateConfig {
  75. [key: string]: any;
  76. keepUniOriginNav?: boolean;
  77. platform: 'h5' | 'app-plus' | 'app-lets' | 'mp-weixin' | 'mp-baidu' | 'mp-alipay' | 'mp-toutiao' | 'mp-qq' | 'mp-360';
  78. h5?: H5Config;
  79. APP?: AppConfig;
  80. applet?: appletConfig;
  81. debugger?: debuggerConfig;
  82. routerBeforeEach?: (to: navtoRule, from: navtoRule, next: (rule?: navtoRule | false) => void) => void;
  83. routerAfterEach?: (to: navtoRule, from: navtoRule, next?: Function) => void;
  84. routerErrorEach?: (error: navErrorRule, router: Router) => void;
  85. resolveQuery?: (jsonQuery: objectAny) => objectAny;
  86. parseQuery?: (jsonQuery: objectAny) => objectAny;
  87. detectBeforeLock?: (router: Router, to: string | number | totalNextRoute | navRoute, navType: NAVTYPE) => void;
  88. routes: RoutesRule[];
  89. }
  90. export declare interface LifeCycleConfig {
  91. beforeHooks: hookListRule;
  92. afterHooks: hookListRule;
  93. routerBeforeHooks: hookListRule;
  94. routerAfterHooks: hookListRule;
  95. routerErrorHooks: Array<(error: navErrorRule, router: Router) => void>;
  96. }
  97. export declare interface navErrorRule {
  98. type: navRuleStatus;
  99. msg: string;
  100. to?: totalNextRoute;
  101. from?: totalNextRoute;
  102. nextTo?: any;
  103. [propName: string]: any;
  104. }
  105. export declare type navMethodRule = Promise<void | undefined | navRuleStatus>;
  106. export declare interface navRoute extends h5NextRule, navtoRule {
  107. }
  108. export declare type navRuleStatus = 0 | 1 | 2 | 3;
  109. export declare interface navtoRule {
  110. NAVTYPE?: NAVTYPE;
  111. path?: string;
  112. name?: string | undefined;
  113. query?: objectAny;
  114. params?: objectAny;
  115. animationType?: startAnimationType | endAnimationType;
  116. animationDuration?: number;
  117. events?: objectAny;
  118. success?: Function;
  119. fail?: Function;
  120. complete?: Function;
  121. }
  122. export declare type NAVTYPE = 'push' | 'replace' | 'replaceAll' | 'pushTab' | 'back';
  123. export declare enum navtypeToggle {
  124. 'push' = "navigateTo",
  125. 'replace' = "redirectTo",
  126. 'replaceAll' = "reLaunch",
  127. 'pushTab' = "switchTab",
  128. 'back' = "navigateBack"
  129. }
  130. export declare type notCallProxyHookRule = 'onHide' | 'beforeDestroy' | 'destroyed' | 'onUnload' | 'onResize';
  131. export declare type objectAny = {
  132. [propName: string]: any;
  133. };
  134. export declare interface originMixins extends uniNavApiRule {
  135. BACKTYPE: '' | backTypeRule;
  136. }
  137. export declare type pageTypeRule = 'app' | 'page' | 'component';
  138. export declare interface pageVueHookConfig extends baseAppHookConfig {
  139. onShow: Array<hookObjectRule | Function>;
  140. onHide: Array<hookObjectRule | Function>;
  141. onLoad: Array<hookObjectRule | Function>;
  142. onReady: Array<hookObjectRule | Function>;
  143. onUnload: Array<hookObjectRule | Function>;
  144. onResize: Array<hookObjectRule | Function>;
  145. }
  146. export declare type pageVueSortHookRule = 'beforeCreate' | 'created' | 'beforeMount' | 'mounted' | 'onLoad' | 'onReady' | 'onShow' | 'onResize' | 'onHide' | 'beforeDestroy' | 'destroyed' | 'onUnload';
  147. export declare type PromiseResolve = (value?: void | PromiseLike<void> | undefined) => void;
  148. export declare type proxyHookName = 'beforeHooks' | 'afterHooks';
  149. export declare type reloadNavRule = totalNextRoute | false | undefined | string;
  150. export declare type reNavMethodRule = 'navigateTo' | 'redirectTo' | 'reLaunch' | 'switchTab';
  151. export declare type reNotNavMethodRule = 'navigateBack';
  152. export declare enum rewriteMethodToggle {
  153. 'navigateTo' = "push",
  154. 'navigate' = "push",
  155. 'redirectTo' = "replace",
  156. 'reLaunch' = "replaceAll",
  157. 'switchTab' = "pushTab",
  158. 'navigateBack' = "back"
  159. }
  160. export declare interface Router {
  161. [key: string]: any;
  162. readonly lifeCycle: LifeCycleConfig;
  163. readonly options: InstantiateConfig;
  164. $lockStatus: boolean;
  165. $route: object | null;
  166. enterPath: string;
  167. Vue: any;
  168. appProxyHook: {
  169. app: appVueHookConfig;
  170. };
  171. appMain: {
  172. NAVTYPE: reNavMethodRule | reNotNavMethodRule;
  173. path: string;
  174. } | {};
  175. appletsProxyHook: appletsVueHookConfig;
  176. routesMap: routesMapRule | {};
  177. mount: Array<{
  178. app: any;
  179. el: string;
  180. }>;
  181. install(Vue: any): void;
  182. push(to: totalNextRoute | navRoute | string, from?: totalNextRoute): void;
  183. replace(to: totalNextRoute | navRoute | string, from?: totalNextRoute): void;
  184. replaceAll(to: totalNextRoute | navRoute | string, from?: totalNextRoute): void;
  185. pushTab(to: totalNextRoute | navRoute | string, from?: totalNextRoute): void;
  186. back(level: number | undefined, origin?: uniBackRule | uniBackApiRule): void;
  187. forceGuardEach(navType: NAVTYPE | undefined, forceNav: boolean): void;
  188. beforeEach(userGuard: guardHookRule): void;
  189. afterEach(userGuard: (to: totalNextRoute, from: totalNextRoute) => void): void;
  190. }
  191. export declare function RouterMount(Vim: any, router: Router, el?: string | undefined): void | never;
  192. export declare interface routeRule {
  193. name: string | undefined;
  194. meta: objectAny;
  195. path: string;
  196. query: objectAny;
  197. params: objectAny;
  198. fullPath: string;
  199. NAVTYPE: NAVTYPE | '';
  200. BACKTYPE?: backTypeRule | '';
  201. [propName: string]: any;
  202. }
  203. export declare type routesMapKeysRule = 'finallyPathList' | 'finallyPathMap' | 'aliasPathMap' | 'pathMap' | 'nameMap' | 'vueRouteMap';
  204. export declare interface routesMapRule {
  205. [key: string]: any;
  206. finallyPathList: Array<string>;
  207. finallyPathMap: RoutesRule;
  208. aliasPathMap: RoutesRule;
  209. pathMap: RoutesRule;
  210. nameMap: RoutesRule;
  211. vueRouteMap: objectAny;
  212. }
  213. export declare interface RoutesRule {
  214. path: string;
  215. component?: object;
  216. name?: string;
  217. components?: object;
  218. redirect?: string | Function;
  219. props?: boolean | object | Function;
  220. aliasPath?: string;
  221. alias?: string | Array<string>;
  222. children?: Array<RoutesRule>;
  223. beforeEnter?: guardHookRule;
  224. meta?: any;
  225. [propName: string]: any;
  226. }
  227. export declare function runtimeQuit(title?: string | undefined): void;
  228. export declare interface startAnimationRule {
  229. animationType?: startAnimationType;
  230. animationDuration?: number;
  231. }
  232. export declare type startAnimationType = 'slide-in-right' | 'slide-in-left' | 'slide-in-top' | 'slide-in-bottom' | 'pop-in' | 'fade-in' | 'zoom-out' | 'zoom-fade-out' | 'none';
  233. export declare interface totalNextRoute extends h5NextRule, navtoRule {
  234. path: string;
  235. delta?: number;
  236. [propName: string]: any;
  237. }
  238. export declare interface uniBackApiRule {
  239. delta?: number;
  240. animationDuration?: number;
  241. animationType?: endAnimationType;
  242. }
  243. export declare interface uniBackRule {
  244. from: backTypeRule;
  245. }
  246. export declare interface uniNavApiRule {
  247. url: string;
  248. openType?: 'appLaunch';
  249. query?: objectAny;
  250. path?: string;
  251. delta?: number;
  252. detail?: {
  253. [propName: string]: any;
  254. };
  255. animationType?: startAnimationType;
  256. animationDuration?: number;
  257. events?: {
  258. [propName: string]: any;
  259. };
  260. success?: Function;
  261. fail?: Function;
  262. complete?: Function;
  263. animation?: {
  264. animationType?: startAnimationType;
  265. animationDuration?: number;
  266. };
  267. }
  268. export { }
  269. // @ts-ignore
  270. declare module 'vue/types/vue' {
  271. interface Vue {
  272. $Router: Router;
  273. $Route: routeRule;
  274. }
  275. }