UNPKG

rollup-plugin-react-compat

Version:
64 lines (56 loc) 2.31 kB
const resolve = require("rollup-plugin-node-resolve"); function preact(options = {}) { const aliasModules = options.aliasModules || {}; const resolvePlugin = resolve(options); const customResolvePlugin = { ...resolvePlugin, resolveId(importee, importer) { if (options.usePreactCompat) { if ( importee === "react" || importee === "react-dom" ) { const moduleName = options.usePreactX ? "preact/compat" : "preact-compat"; return options.resolveCompat ? resolvePlugin.resolveId(moduleName, importer) : moduleName; } } else if (options.useReactCompat) { if ( importee === "react" || importee === "react-dom" ) { const moduleName = "react-simple-compat"; return options.resolveCompat ? resolvePlugin.resolveId(moduleName, importer) : moduleName; } } else if (options.useCroact) { if ( importee === "react" || importee === "react-dom" ) { const moduleName = "croact"; return options.resolveCompat ? resolvePlugin.resolveId(moduleName, importer) : moduleName; } } if (importee === "prop-types" && options.noPropTypes) { return resolvePlugin.resolveId(__dirname + "/compat/prop-types.js", importer); } if (importee === "react-is" && options.noReactIs) { return resolvePlugin.resolveId(__dirname + "/compat/react-is.js", importer); } if (aliasModules[importee]) { return aliasModules[importee]; } return resolvePlugin.resolveId(importee, importer); }, intro: function intro() { return options && options.noEnv ? `var process = { env: {NODE_ENV: "production"} };` : ""; }, } return customResolvePlugin; } module.exports = preact;