Huáng Jùnliàng 1e3ef05685
[babel 8] Type checking preset-react options (#12741)
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2021-03-26 20:11:39 +01:00

50 lines
1.3 KiB
JavaScript

import { declare } from "@babel/helper-plugin-utils";
import transformReactJSX from "@babel/plugin-transform-react-jsx";
import transformReactJSXDevelopment from "@babel/plugin-transform-react-jsx-development";
import transformReactDisplayName from "@babel/plugin-transform-react-display-name";
import transformReactPure from "@babel/plugin-transform-react-pure-annotations";
import normalizeOptions from "./normalize-options";
export default declare((api, opts) => {
api.assertVersion(7);
const {
development,
importSource,
pragma,
pragmaFrag,
pure,
runtime,
throwIfNamespace,
} = normalizeOptions(opts);
return {
plugins: [
[
development ? transformReactJSXDevelopment : transformReactJSX,
process.env.BABEL_8_BREAKING
? {
importSource,
pragma,
pragmaFrag,
runtime,
throwIfNamespace,
pure,
}
: {
importSource,
pragma,
pragmaFrag,
runtime,
throwIfNamespace,
pure,
useBuiltIns: !!opts.useBuiltIns,
useSpread: opts.useSpread,
},
],
transformReactDisplayName,
pure !== false && transformReactPure,
].filter(Boolean),
};
});