nx/packages/gatsby/babel.ts
2021-03-30 12:48:09 -04:00

32 lines
765 B
TypeScript

/*
* Babel preset to provide Gatsby support for Nx.
*/
interface GatsbyBabelOptions {
reactRuntime?: string;
reactImportSource?: string;
}
module.exports = function (api: any, presetOptions: GatsbyBabelOptions) {
api.assertVersion(7);
return {
presets: [
'@nrwl/web/babel',
[
require.resolve('babel-preset-gatsby'),
getGatsbyBabelOptions({ presetOptions }),
],
],
};
};
function getGatsbyBabelOptions({ presetOptions }) {
const gatsbyPresetOptions: Record<string, string | boolean> = {
reactRuntime: presetOptions.reactRuntime ?? 'automatic',
};
if (presetOptions.reactImportSource) {
gatsbyPresetOptions.reactImportSource = presetOptions.reactImportSource;
}
return gatsbyPresetOptions;
}