mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
20fe65ce41
Fixes #5845 Implement tslint for core files **What is this?** Implements tslint for both next and next-server, but keeps standardjs/eslint for the .js files that are still there, we're gradually migrating to Typescript. **How does it work?** Before every commit (pre-commit) we execute the following `tslint` command: `tslint -c tslint.json 'packages/**/*.ts` **TSLint Rules** In order to avoid as much changes as possible I marked some rules as false. This way we can improve the linter but making sure this step will not break things. (see tslint.json) **Note** After merging this PR, you'll need to update your dependencies since it adds tslint to package.json
22 lines
966 B
TypeScript
22 lines
966 B
TypeScript
import {join} from 'path'
|
|
import {CLIENT_STATIC_FILES_PATH, BUILD_MANIFEST, REACT_LOADABLE_MANIFEST, SERVER_DIRECTORY} from 'next-server/constants'
|
|
import {requirePage} from './require'
|
|
|
|
function interopDefault(mod: any) {
|
|
return mod.default || mod
|
|
}
|
|
|
|
export async function loadComponents(distDir: string, buildId: string, pathname: string) {
|
|
const documentPath = join(distDir, SERVER_DIRECTORY, CLIENT_STATIC_FILES_PATH, buildId, 'pages', '_document')
|
|
const appPath = join(distDir, SERVER_DIRECTORY, CLIENT_STATIC_FILES_PATH, buildId, 'pages', '_app')
|
|
const [buildManifest, reactLoadableManifest, Component, Document, App] = await Promise.all([
|
|
require(join(distDir, BUILD_MANIFEST)),
|
|
require(join(distDir, REACT_LOADABLE_MANIFEST)),
|
|
interopDefault(requirePage(pathname, distDir)),
|
|
interopDefault(require(documentPath)),
|
|
interopDefault(require(appPath)),
|
|
])
|
|
|
|
return {buildManifest, reactLoadableManifest, Component, Document, App}
|
|
}
|