import {PluginObj} from '@babel/core' import {NodePath} from '@babel/traverse' import {Program} from '@babel/types' import commonjsPlugin from '@babel/plugin-transform-modules-commonjs' // Rewrite imports using next/ to next-server/ export default function NextToNextServer (...args: any): PluginObj { const commonjs = commonjsPlugin(...args) return { visitor: { Program: { exit (path: NodePath, state) { let foundModuleExports = false path.traverse({ MemberExpression ( path: any ) { if (path.node.object.name !== 'module') return if (path.node.property.name !== 'exports') return foundModuleExports = true } }) if (!foundModuleExports) { return } commonjs.visitor.Program.exit.call(this, path, state) } } } } }