| 124 | */ |
| 125 | module.exports = ({ dev, turbo, bundleType, experimental, ...rest }) => { |
| 126 | const externalHandler = ({ context, request, getResolve }, callback) => { |
| 127 | ;(async () => { |
| 128 | if ( |
| 129 | request.match( |
| 130 | /next[/\\]dist[/\\]compiled[/\\](babel|webpack|source-map|semver|jest-worker|stacktrace-parser|@ampproject\/toolbox-optimizer)/ |
| 131 | ) |
| 132 | ) { |
| 133 | callback(null, 'commonjs ' + request) |
| 134 | return |
| 135 | } |
| 136 | |
| 137 | if (request.match(/(server\/image-optimizer|experimental\/testmode)/)) { |
| 138 | callback(null, 'commonjs ' + request) |
| 139 | return |
| 140 | } |
| 141 | |
| 142 | if (request.match(/\.external(\.js)?$/)) { |
| 143 | const resolve = getResolve() |
| 144 | const resolved = await resolve(context, request) |
| 145 | const relative = path.relative( |
| 146 | path.join(__dirname, '..'), |
| 147 | resolved.replace('esm' + path.sep, '') |
| 148 | ) |
| 149 | callback(null, `commonjs ${relative}`) |
| 150 | } else { |
| 151 | const regexMatch = Object.keys(externalsRegexMap).find((regex) => |
| 152 | new RegExp(regex).test(request) |
| 153 | ) |
| 154 | if (regexMatch) { |
| 155 | return callback(null, 'commonjs ' + externalsRegexMap[regexMatch]) |
| 156 | } |
| 157 | callback() |
| 158 | } |
| 159 | })() |
| 160 | } |
| 161 | |
| 162 | const bundledReactChannel = experimental ? '-experimental' : '' |
| 163 | |