UNPKG

@netlify/content-engine

Version:
125 lines 5.49 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadPartialStateFromDisk = exports.savePartialStateToDisk = exports.saveState = exports.replaceReducer = exports.store = exports.configureStore = exports.readState = exports.emitter = void 0; const redux_1 = require("redux"); const lodash_pick_1 = __importDefault(require("lodash.pick")); // import telemetry from "gatsby-telemetry" const mett_1 = require("../utils/mett"); const redux_thunk_1 = __importDefault(require("redux-thunk")); const reducers = __importStar(require("./reducers")); const persist_1 = require("./persist"); const create_require_from_path_1 = require("../core-utils/create-require-from-path"); const gatsbyRedux = (0, create_require_from_path_1.requireFromInstalledGatsbyDist)(`redux/index.js`); // Create event emitter for actions exports.emitter = gatsbyRedux?.emitter || (0, mett_1.mett)(); // Read old node data from cache. exports.readState = gatsbyRedux?.readState || (() => { try { const state = (0, persist_1.readFromCache)(); if (state.nodes) { // re-create nodesByType state.nodesByType = new Map(); state.nodes.forEach((node) => { const { type } = node.internal; if (!state.nodesByType.has(type)) { state.nodesByType.set(type, new Map()); } // The `.has` and `.set` calls above make this safe state.nodesByType.get(type).set(node.id, node); }); } // jsonDataPaths was removed in the per-page-manifest // changes. Explicitly delete it here to cover case where user // runs gatsby the first time after upgrading. delete state[`jsonDataPaths`]; // telemetry.trackCli(`CACHE_STATUS`, { // cacheStatus: `WARM`, // }) return state; } catch (e) { // telemetry.trackCli(`CACHE_STATUS`, { // cacheStatus: `COLD`, // }) return {}; } }); /** * Redux middleware handling array of actions */ const multi = ({ dispatch }) => (next) => (action) => Array.isArray(action) ? action.filter(Boolean).map(dispatch) : next(action); exports.configureStore = gatsbyRedux?.configureStore || ((initialState) => (0, redux_1.createStore)((0, redux_1.combineReducers)({ ...reducers }), initialState, (0, redux_1.applyMiddleware)(redux_thunk_1.default, multi))); exports.store = gatsbyRedux?.store || (0, exports.configureStore)(process.env.GATSBY_WORKER_POOL_WORKER ? {} : (0, exports.readState)()); /** * Allows overloading some reducers (e.g. when setting a custom datastore) */ exports.replaceReducer = gatsbyRedux?.replaceReducer || ((customReducers) => { exports.store.replaceReducer((0, redux_1.combineReducers)({ ...reducers, ...customReducers })); }); // Persist state. exports.saveState = gatsbyRedux?.saveState || (() => { const state = exports.store.getState(); return (0, persist_1.writeToCache)({ nodes: state.nodes, typeOwners: state.typeOwners, statefulSourcePlugins: state.statefulSourcePlugins, status: state.status, jobsV2: state.jobsV2, }); }); exports.savePartialStateToDisk = gatsbyRedux?.savePartialStateToDisk || ((keys, transformState) => { const state = exports.store.getState(); const contents = (0, lodash_pick_1.default)(state, keys); const savedContents = transformState ? transformState(contents) : contents; return (0, persist_1.writeToCache)(savedContents); }); exports.loadPartialStateFromDisk = gatsbyRedux?.loadPartialStateFromDisk || (() => { try { return (0, persist_1.readFromCache)(); } catch (e) { // ignore errors. } return {}; }); // if we're using Gatsby's redux then it will already be emitting the following: if (!gatsbyRedux?.emitter) { exports.store.subscribe(() => { const lastAction = exports.store.getState().lastAction; exports.emitter.emit(lastAction.type, lastAction); }); } //# sourceMappingURL=index.js.map