Skip to content

Commit

Permalink
Merge branch 'canary' into next-edge-ssr-bench
Browse files Browse the repository at this point in the history
  • Loading branch information
feedthejim committed Sep 27, 2022
2 parents 8fc4a4f + c86a9b9 commit 204a480
Show file tree
Hide file tree
Showing 9 changed files with 227 additions and 149 deletions.
31 changes: 31 additions & 0 deletions packages/next/build/utils.ts
Expand Up @@ -9,6 +9,7 @@ import path from 'path'
import { promises as fs } from 'fs'
import { isValidElementType } from 'next/dist/compiled/react-is'
import stripAnsi from 'next/dist/compiled/strip-ansi'
import browserslist from 'next/dist/compiled/browserslist'
import {
Redirect,
Rewrite,
Expand All @@ -22,6 +23,7 @@ import {
MIDDLEWARE_FILENAME,
SERVER_RUNTIME,
} from '../lib/constants'
import { MODERN_BROWSERSLIST_TARGET } from '../shared/lib/constants'
import prettyBytes from '../lib/pretty-bytes'
import { getRouteRegex } from '../shared/lib/router/utils/route-regex'
import { getRouteMatcher } from '../shared/lib/router/utils/route-matcher'
Expand Down Expand Up @@ -1725,3 +1727,32 @@ export class NestedMiddlewareError extends Error {
)
}
}

export function getSupportedBrowsers(
dir: string,
isDevelopment: boolean,
config: NextConfigComplete
): string[] | undefined {
let browsers: any
try {
const browsersListConfig = browserslist.loadConfig({
path: dir,
env: isDevelopment ? 'development' : 'production',
})
// Running `browserslist` resolves `extends` and other config features into a list of browsers
if (browsersListConfig && browsersListConfig.length > 0) {
browsers = browserslist(browsersListConfig)
}
} catch {}

// When user has browserslist use that target
if (browsers && browsers.length > 0) {
return browsers
}

// When user does not have browserslist use the default target
// When `experimental.legacyBrowsers: false` the modern default is used
return config.experimental.legacyBrowsers
? undefined
: MODERN_BROWSERSLIST_TARGET
}

0 comments on commit 204a480

Please sign in to comment.