diff --git a/packages/next-server/lib/router/router.ts b/packages/next-server/lib/router/router.ts index c299027e85104b334f37db0d2f8828b325ae2bb5..cb62b0eb7c9f9bd28d6fe832c535033e6d17b489 100644 --- a/packages/next-server/lib/router/router.ts +++ b/packages/next-server/lib/router/router.ts @@ -3,7 +3,7 @@ import { ComponentType } from 'react'; import { parse } from 'url'; import mitt, {MittEmitter} from '../mitt'; -import { formatWithValidation, getURL, loadGetInitialProps, IContext, AppContextType } from '../utils'; +import { formatWithValidation, getURL, loadGetInitialProps, NextPageContext, AppContextType } from '../utils'; import {rewriteUrlForNextExport} from './rewrite-url-for-export' function toRoute(path: string): string { @@ -423,7 +423,7 @@ export default class Router implements BaseRouter { return Component } - async getInitialProps(Component: ComponentType, ctx: IContext): Promise { + async getInitialProps(Component: ComponentType, ctx: NextPageContext): Promise { let cancelled = false const cancel = () => { cancelled = true } this.componentLoadCancel = cancel diff --git a/packages/next-server/lib/utils.ts b/packages/next-server/lib/utils.ts index 257c58bfa131efcd76c1e4131d10a828daca2a3b..f0cfb6a93a6914f56add9b825c3d425fed32ed78 100644 --- a/packages/next-server/lib/utils.ts +++ b/packages/next-server/lib/utils.ts @@ -8,7 +8,7 @@ import { BaseRouter } from './router/router' /** * Types used by both next and next-server */ -export type NextComponentType = ComponentType

& { +export type NextComponentType = ComponentType

& { getInitialProps?(context: C): Promise, } @@ -31,7 +31,7 @@ export type BaseContext = { [k: string]: any, } -export type INEXTDATA = { +export type NEXT_DATA = { dataManager: string props: any page: string @@ -45,7 +45,8 @@ export type INEXTDATA = { err?: Error & { statusCode?: number }, } -export interface IContext { +// tslint:disable-next-line interface-name +export interface NextPageContext { err?: Error & { statusCode?: number } | null req?: IncomingMessage res?: ServerResponse @@ -55,9 +56,9 @@ export interface IContext { } export type AppContextType = { - Component: NextComponentType + Component: NextComponentType router: R - ctx: IContext, + ctx: NextPageContext, } export type AppInitialProps = { @@ -65,11 +66,11 @@ export type AppInitialProps = { } export type AppPropsType = AppInitialProps & { - Component: NextComponentType + Component: NextComponentType router: R, } -export type DocumentContext = IContext & { +export type DocumentContext = NextPageContext & { renderPage: RenderPage, } @@ -78,7 +79,7 @@ export type DocumentInitialProps = RenderPageResult & { } export type DocumentProps = DocumentInitialProps & { - __NEXT_DATA__: INEXTDATA + __NEXT_DATA__: NEXT_DATA dangerousAsPath: string ampPath: string amphtml: boolean diff --git a/packages/next/client/with-router.tsx b/packages/next/client/with-router.tsx index fb4eaf0ea9f72b0ae7833d9fda026dd4387020b2..9b9738c78f3aa01b50f8f17fcc7d2e0cc6c9515f 100644 --- a/packages/next/client/with-router.tsx +++ b/packages/next/client/with-router.tsx @@ -1,6 +1,6 @@ import React from 'react' import PropTypes from 'prop-types' -import { NextComponentType, IContext } from 'next-server/dist/lib/utils' +import { NextComponentType, NextPageContext } from 'next-server/dist/lib/utils' import { PublicRouterInstance } from './router'; export type WithRouterProps = { @@ -9,7 +9,9 @@ export type WithRouterProps = { export type ExcludeRouterProps

= Pick> -export default function withRouter

(ComposedComponent: NextComponentType): React.ComponentClass> { +export default function withRouter

( + ComposedComponent: NextComponentType, +): React.ComponentClass> { class WithRouteWrapper extends React.Component> { static displayName?: string static getInitialProps?: any diff --git a/packages/next/pages/_app.tsx b/packages/next/pages/_app.tsx index ae374d4786ae2167adaa60b062841f23447dea6d..ff9593db61abc9937a5eb419432c6883a4be8828 100644 --- a/packages/next/pages/_app.tsx +++ b/packages/next/pages/_app.tsx @@ -1,9 +1,9 @@ import React, {ErrorInfo} from 'react' import PropTypes from 'prop-types' -import { execOnce, loadGetInitialProps, NextComponentType, IContext, AppContextType, AppInitialProps, AppPropsType } from 'next-server/dist/lib/utils' +import { execOnce, loadGetInitialProps, AppContextType, AppInitialProps, AppPropsType } from 'next-server/dist/lib/utils' import { Router, makePublicRouterInstance } from '../client/router' -export { NextComponentType, IContext, AppInitialProps } +export { AppInitialProps } export type AppContext = AppContextType diff --git a/packages/next/pages/_error.tsx b/packages/next/pages/_error.tsx index 121d54fbd8611c25128aa8132354774dc23845f3..534f063f10b449ced2a3740cf2a58c64441d0ad9 100644 --- a/packages/next/pages/_error.tsx +++ b/packages/next/pages/_error.tsx @@ -1,6 +1,6 @@ import React from 'react' import Head from 'next-server/head' -import { IContext } from 'next-server/dist/lib/utils' +import { NextPageContext } from 'next-server/dist/lib/utils' const statusCodes: { [code: number]: string } = { 400: 'Bad Request', @@ -16,7 +16,7 @@ export type ErrorProps = { export default class Error

extends React.Component

{ static displayName = 'ErrorPage' - static getInitialProps({ res, err }: IContext) { + static getInitialProps({ res, err }: NextPageContext) { const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404 return { statusCode } diff --git a/packages/next/types/index.d.ts b/packages/next/types/index.d.ts index 5fe689b8f856181d3ddc225da2aeab3a0b3c5bf6..daf34319bc21fc200977bc38e0653f29b2097ffd 100644 --- a/packages/next/types/index.d.ts +++ b/packages/next/types/index.d.ts @@ -1,5 +1,5 @@ import React from 'react' -import { IContext } from 'next-server/dist/lib/utils'; +import { NextPageContext, NextComponentType } from 'next-server/dist/lib/utils'; // Extend the React types with missing properties declare module 'react' { @@ -20,11 +20,9 @@ declare module 'react' { } } -export type NextPageContext = IContext - export type NextPage

= { (props: P): JSX.Element; getInitialProps?(ctx: NextPageContext): Promise

; } -export { IContext } +export { NextPageContext, NextComponentType }