uni-simple-router.d.ts 9.2 KB

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