gatsby-plugin-fresnel
Version:
[](https://badge.fury.io/js/gatsby-plugin-fresnel)
31 lines (24 loc) • 981 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.onCreateWebpackConfig = exports.pluginOptionsSchema = void 0;
var _webpackVirtualModules = _interopRequireDefault(require("webpack-virtual-modules"));
// Based on CreateMediaConfig in https://github.com/artsy/fresnel/blob/master/src/Media.tsx
const pluginOptionsSchema = ({
Joi
}) => Joi.object({
breakpoints: Joi.object().required().pattern(Joi.string(), Joi.number()),
interactions: Joi.object().pattern(Joi.string(), Joi.string())
});
exports.pluginOptionsSchema = pluginOptionsSchema;
const onCreateWebpackConfig = ({
actions
}, pluginOptions) => {
const moduleContents = JSON.stringify(pluginOptions);
actions.setWebpackConfig({
plugins: [new _webpackVirtualModules.default({
'node_modules/gatsby-plugin-fresnel/config.json': moduleContents
})]
});
};
exports.onCreateWebpackConfig = onCreateWebpackConfig;