gatsby-plugin-prodo
Version:
Gatsby plugin to add support for prodo
49 lines (41 loc) • 1.55 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var path = require("path"); // Add Babel plugin
try {
require.resolve("@prodo/babel-plugin");
} catch (e) {
throw new Error("'@prodo/babel-plugin' is not installed which is needed by plugin 'gatsby-plugin-prodo'");
}
exports.onCreateBabelConfig = function (_ref, pluginOptions) {
var stage = _ref.stage,
actions = _ref.actions;
actions.setBabelPlugin({
name: "@prodo/babel-plugin",
stage: stage
});
};
exports.onCreateWebpackConfig = function (_ref2, pluginOptions) {
var stage = _ref2.stage,
loaders = _ref2.loaders,
actions = _ref2.actions,
plugins = _ref2.plugins,
cache = _ref2.cache,
other = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["stage", "loaders", "actions", "plugins", "cache"]);
var ssr = stage === "build-html" || stage === "build-javascript" || "develop-html";
actions.setWebpackConfig({
module: {
rules: [{
test: /model\.js$/,
include: path.dirname(require.resolve("gatsby-plugin-prodo")),
use: [loaders.js(), {
loader: path.join("gatsby-plugin-prodo", "loaders", "model"),
options: (0, _extends2["default"])({
ssr: ssr
}, pluginOptions)
}]
}]
}
});
};