rsnext/test/lib/react-channel-require-hook.js
Tim Neutkens 14c9376899
BREAKING CHANGE: Remove React 17 (#41629)
Next.js 13 will require React 18.

In this PR I've only updated the peerDependency and removed the test runs in GH actions. Further cleanup will follow later, this allows us to remove the code supporting it later.



## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have a helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have a helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm lint`
- [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md)


Co-authored-by: Jiachi Liu <4800338+huozhi@users.noreply.github.com>
2022-10-21 22:20:36 +00:00

26 lines
988 B
JavaScript

const mod = require('module')
// The value will be '17' or 'exp' to alias the actual react channel
const reactVersion = undefined
const reactDir = `react-${reactVersion}`
const reactDomDir = `react-dom-${reactVersion}`
const hookPropertyMap = new Map([
['react', reactDir],
['react/package.json', `${reactDir}/package.json`],
['react/jsx-runtime', `${reactDir}/jsx-runtime`],
['react/jsx-dev-runtime', `${reactDir}/jsx-dev-runtime`],
['react-dom', `${reactDomDir}`],
['react-dom/package.json', `${reactDomDir}/package.json`],
['react-dom/client', `${reactDomDir}/client`],
['react-dom/server', `${reactDomDir}/server`],
['react-dom/server.browser', `${reactDomDir}/server.browser`],
])
const resolveFilename = mod._resolveFilename
mod._resolveFilename = function (request, parent, isMain, options) {
const hookResolved = hookPropertyMap.get(request)
if (hookResolved) request = hookResolved
return resolveFilename.call(mod, request, parent, isMain, options)
}