1 | import { ServerResponse } from 'http'
|
2 | import { IncomingMessage } from 'connect'
|
3 | import Vue, { ComponentOptions } from 'vue'
|
4 | import VueRouter, { Location, Route } from 'vue-router'
|
5 | import { Store } from 'vuex'
|
6 | import { NuxtRuntimeConfig } from '../config/runtime'
|
7 |
|
8 |
|
9 | import './vue'
|
10 |
|
11 |
|
12 | import './vuex'
|
13 |
|
14 | type NuxtState = Record<string, any>
|
15 |
|
16 | export interface Context {
|
17 | $config: NuxtRuntimeConfig
|
18 |
|
19 | app: NuxtAppOptions
|
20 | base: string
|
21 | |
22 |
|
23 |
|
24 | isClient: boolean
|
25 | |
26 |
|
27 |
|
28 | isServer: boolean
|
29 | |
30 |
|
31 |
|
32 | isStatic: boolean
|
33 | isDev: boolean
|
34 | isHMR: boolean
|
35 | route: Route
|
36 | from: Route
|
37 | store: Store<any>
|
38 | env: Record<string, any>
|
39 | params: Route['params']
|
40 | payload: any
|
41 | query: Route['query']
|
42 | req: IncomingMessage
|
43 | res: ServerResponse
|
44 | redirect(status: number, path: string, query?: Route['query']): void
|
45 | redirect(path: string, query?: Route['query']): void
|
46 | redirect(location: Location): void
|
47 | error(params: NuxtError): void
|
48 | nuxtState: NuxtState
|
49 | beforeNuxtRender(fn: (params: { Components: VueRouter['getMatchedComponents'], nuxtState: NuxtState }) => void): void
|
50 | }
|
51 |
|
52 | export type Middleware = string | ((ctx: Context, cb: Function) => Promise<void> | void)
|
53 | export type Inject = (key: string, value: any) => void
|
54 | export type Plugin = (ctx: Context, inject: Inject) => Promise<void> | void
|
55 |
|
56 | export interface Transition {
|
57 | name?: string
|
58 | mode?: string
|
59 | css?: boolean
|
60 | duration?: number
|
61 | type?: string
|
62 | enterClass?: string
|
63 | enterToClass?: string
|
64 | enterActiveClass?: string
|
65 | leaveClass?: string
|
66 | leaveToClass?: string
|
67 | leaveActiveClass?: string
|
68 | beforeEnter?(el: HTMLElement): void
|
69 | enter?(el: HTMLElement, done: Function): void
|
70 | afterEnter?(el: HTMLElement): void
|
71 | enterCancelled?(el: HTMLElement): void
|
72 | beforeLeave?(el: HTMLElement): void
|
73 | leave?(el: HTMLElement, done: Function): void
|
74 | afterLeave?(el: HTMLElement): void
|
75 | leaveCancelled?(el: HTMLElement): void
|
76 | }
|
77 |
|
78 | export interface NuxtError {
|
79 | message?: string
|
80 | path?: string
|
81 | statusCode?: number
|
82 | }
|
83 |
|
84 | export interface DefaultNuxtLoading extends Vue {
|
85 | canSucceed: boolean
|
86 | clear(): void
|
87 | continuous: boolean
|
88 | decrease(num: number): DefaultNuxtLoading
|
89 | duration: number
|
90 | fail(): DefaultNuxtLoading
|
91 | finish(): DefaultNuxtLoading
|
92 | increase(num: number): DefaultNuxtLoading
|
93 | get(): number
|
94 | hide(): DefaultNuxtLoading
|
95 | left: number
|
96 | pause(): DefaultNuxtLoading
|
97 | percent: number
|
98 | resume(): DefaultNuxtLoading
|
99 | reversed: boolean
|
100 | rtl: boolean
|
101 | set(num: number): DefaultNuxtLoading
|
102 | skipTimerCount: number
|
103 | show: boolean
|
104 | start(): DefaultNuxtLoading
|
105 | startTimer(): void
|
106 | throttle: number
|
107 | }
|
108 |
|
109 | export interface CustomNuxtLoading extends Vue {
|
110 | fail?(): CustomNuxtLoading
|
111 | finish(): CustomNuxtLoading
|
112 | increase?(num: number): CustomNuxtLoading
|
113 | pause?(): CustomNuxtLoading
|
114 | start(): CustomNuxtLoading
|
115 | }
|
116 |
|
117 | export type NuxtLoading = DefaultNuxtLoading | CustomNuxtLoading
|
118 |
|
119 | export interface NuxtAppOptions extends ComponentOptions<Vue> {
|
120 | [key: string]: any
|
121 | }
|
122 |
|
123 | export interface NuxtApp extends Vue {
|
124 | $options: NuxtAppOptions
|
125 | $loading: NuxtLoading
|
126 | context: Context
|
127 | error(params: NuxtError): void
|
128 | isOffline: boolean
|
129 | isOnline: boolean
|
130 | layout: any
|
131 | layoutName: string
|
132 | loadLayout(layout: string): Promise<any>
|
133 | refresh(): Promise<void>
|
134 | setLayout(layout: string): any
|
135 | }
|
136 |
|
137 |
|
138 | declare global {
|
139 | interface Window {
|
140 | $nuxt: NuxtApp
|
141 | }
|
142 | }
|