gatsby-source-wordpress
Version:
Source data from WordPress in an efficient and scalable way.
46 lines (44 loc) • 1.56 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.buildNodeQueries = void 0;
var _store = require("../../../store");
var _getGatsbyApi = require("../../../utils/get-gatsby-api");
var _generateQueriesFromIngestableTypes = _interopRequireDefault(require("./generate-queries-from-ingestable-types"));
var _cache = require("../../../utils/cache");
/**
* buildNodeQueries
*
* Uses plugin options to introspect the remote GraphQL
* source, run cache logic, and generate GQL query strings/info
*
* @returns {Object} GraphQL query info including gql query strings
*/
const buildNodeQueries = async () => {
const {
pluginOptions
} = (0, _getGatsbyApi.getGatsbyApi)();
const QUERY_CACHE_KEY = `${pluginOptions.url}--introspection-node-queries`;
let nodeQueries = await (0, _cache.getPersistentCache)({
key: QUERY_CACHE_KEY
});
const {
schemaWasChanged
} = (0, _store.getStore)().getState().remoteSchema;
if (schemaWasChanged || !nodeQueries) {
// regenerate queries from introspection
nodeQueries = await (0, _generateQueriesFromIngestableTypes.default)();
// and cache them
await (0, _cache.setPersistentCache)({
key: QUERY_CACHE_KEY,
value: nodeQueries
});
}
// set the queries in our redux store to use later
(0, _store.getStore)().dispatch.remoteSchema.setState({
nodeQueries
});
return nodeQueries;
};
exports.buildNodeQueries = buildNodeQueries;
//# sourceMappingURL=build-node-queries.js.map