gatsby-plugin-prodo
Version:
Gatsby plugin to add support for prodo
31 lines (24 loc) • 1.15 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var loaderUtils = require("loader-utils");
/**
* loads a generated file that allows us to require the model.
* this is useful because otherwise requiring the model in
* gatsby-ssr/browser results in a webpack require context warning
*
* results in a file that looks like:
*
* ```js
* const model = require('path/to/model').model
* module.exports = model.createStore(storeConfig)
* ```
*/
module.exports = function () {
var options = loaderUtils.getOptions(this);
var storeConfig = (0, _extends2["default"])({}, options.storeConfig || {}); // in SSR, we need a localFixture (because localStorage doesn't exist)
if (options.ssr && !storeConfig.localFixture) {
storeConfig.localFixture = storeConfig.initLocal || {};
}
return "const model = require('" + options.model + "')" + (options.exportName === "default" ? "" : "." + (options.exportName || "model")) + "\nmodule.exports = model.createStore(" + JSON.stringify(storeConfig) + ")\n";
};