diff --git a/packages/next-server/lib/router/router.ts b/packages/next-server/lib/router/router.ts index cb62b0eb7c9f9bd28d6fe832c535033e6d17b489..319ea3f54f64212b2afb1027ff99570033f386d1 100644 --- a/packages/next-server/lib/router/router.ts +++ b/packages/next-server/lib/router/router.ts @@ -5,6 +5,7 @@ import { parse } from 'url'; import mitt, {MittEmitter} from '../mitt'; import { formatWithValidation, getURL, loadGetInitialProps, NextPageContext, AppContextType } from '../utils'; import {rewriteUrlForNextExport} from './rewrite-url-for-export' +import { ParsedUrlQuery } from 'querystring'; function toRoute(path: string): string { return path.replace(/\/$/, '') || '/' @@ -13,7 +14,7 @@ function toRoute(path: string): string { export type BaseRouter = { route: string pathname: string - query: string + query: ParsedUrlQuery asPath: string, } @@ -31,7 +32,7 @@ type BeforePopStateCallback = (state: any) => boolean export default class Router implements BaseRouter { route: string pathname: string - query: string + query: ParsedUrlQuery asPath: string components: {[pathname: string]: RouteInfo} subscriptions: Set @@ -41,7 +42,7 @@ export default class Router implements BaseRouter { static events: MittEmitter = mitt() - constructor(pathname: string, query: any, as: string, { initialProps, pageLoader, App, Component, err }: {initialProps: any, pageLoader: any, Component: ComponentType, App: ComponentType, err?: Error}) { + constructor(pathname: string, query: ParsedUrlQuery, as: string, { initialProps, pageLoader, App, Component, err }: {initialProps: any, pageLoader: any, Component: ComponentType, App: ComponentType, err?: Error}) { // represents the current component key this.route = toRoute(pathname) diff --git a/packages/next-server/server/render.tsx b/packages/next-server/server/render.tsx index 088ef939b5123dad333ae136afde39813aad0f32..87baf4902451fda9d1d9a09ddf5e1d75d1d57780 100644 --- a/packages/next-server/server/render.tsx +++ b/packages/next-server/server/render.tsx @@ -31,12 +31,12 @@ function noRouter() { class ServerRouter implements BaseRouter { route: string pathname: string - query: string + query: ParsedUrlQuery asPath: string // TODO: Remove in the next major version, as this would mean the user is adding event listeners in server-side `render` method static events: MittEmitter = mitt() - constructor(pathname: string, query: any, as: string) { + constructor(pathname: string, query: ParsedUrlQuery, as: string) { this.route = pathname.replace(/\/$/, '') || '/' this.pathname = pathname this.query = query