UNPKG

6.72 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/babel-loader-helpers.js"],"names":["path","require","_","loadCachedConfig","pluginBabelConfig","stages","test","plugins","presets","process","env","NODE_ENV","join","cwd","getCustomOptions","stage","options","prepareOptions","babel","resolve","requiredPlugins","createConfigItem","type","requiredPresets","push","fallbackPresets","reduxPlugins","reduxPresets","forEach","plugin","name","preset","mergeConfigItemOptions","items","itemToMerge","index","findIndex","i","file","resolved","merge","exports"],"mappings":"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","sourcesContent":["const path = require(`path`)\nconst _ = require(`lodash`)\n\nconst loadCachedConfig = () => {\n let pluginBabelConfig = {\n stages: {\n test: { plugins: [], presets: [] },\n },\n }\n if (process.env.NODE_ENV !== `test`) {\n pluginBabelConfig = require(path.join(\n process.cwd(),\n `./.cache/babelState.json`\n ))\n }\n return pluginBabelConfig\n}\n\nconst getCustomOptions = stage => {\n const pluginBabelConfig = loadCachedConfig()\n return pluginBabelConfig.stages[stage].options\n}\n\nconst prepareOptions = (babel, options = {}, resolve = require.resolve) => {\n let pluginBabelConfig = loadCachedConfig()\n\n const { stage } = options\n\n // Required plugins/presets\n const requiredPlugins = [\n babel.createConfigItem([resolve(`babel-plugin-remove-graphql-queries`)], {\n type: `plugin`,\n }),\n ]\n const requiredPresets = []\n\n // Stage specific plugins to add\n if (stage === `build-html` || stage === `develop-html`) {\n requiredPlugins.push(\n babel.createConfigItem([resolve(`babel-plugin-dynamic-import-node`)], {\n type: `plugin`,\n })\n )\n }\n\n if (stage === `develop`) {\n requiredPlugins.push(\n babel.createConfigItem([resolve(`react-hot-loader/babel`)], {\n type: `plugin`,\n })\n )\n }\n\n // Fallback preset\n const fallbackPresets = []\n\n fallbackPresets.push(\n babel.createConfigItem(\n [\n resolve(`babel-preset-gatsby`),\n {\n stage,\n },\n ],\n {\n type: `preset`,\n }\n )\n )\n\n // Go through babel state and create config items for presets/plugins from.\n const reduxPlugins = []\n const reduxPresets = []\n pluginBabelConfig.stages[stage].plugins.forEach(plugin => {\n reduxPlugins.push(\n babel.createConfigItem([resolve(plugin.name), plugin.options], {\n name: plugin.name,\n type: `plugin`,\n })\n )\n })\n pluginBabelConfig.stages[stage].presets.forEach(preset => {\n reduxPresets.push(\n babel.createConfigItem([resolve(preset.name), preset.options], {\n name: preset.name,\n type: `preset`,\n })\n )\n })\n\n return [\n reduxPresets,\n reduxPlugins,\n requiredPresets,\n requiredPlugins,\n fallbackPresets,\n ]\n}\n\nconst mergeConfigItemOptions = ({ items, itemToMerge, type, babel }) => {\n const index = _.findIndex(\n items,\n i => i.file.resolved === itemToMerge.file.resolved\n )\n\n // If this exist, merge the options, otherwise, add it to the array\n if (index !== -1) {\n items[index] = babel.createConfigItem(\n [\n itemToMerge.file.resolved,\n _.merge({}, items[index].options, itemToMerge.options),\n ],\n {\n type,\n }\n )\n } else {\n items.push(itemToMerge)\n }\n\n return items\n}\n\nexports.getCustomOptions = getCustomOptions\n\n// Export helper functions for testing\nexports.prepareOptions = prepareOptions\nexports.mergeConfigItemOptions = mergeConfigItemOptions\n"],"file":"babel-loader-helpers.js"}
\No newline at end of file