Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async fetchContent (store) {
const { addCollection, getCollection } = store
const { apiToken, apiUrl, previewMode } = this.options
const clientHeaders = {
'X-Reason': 'dump',
'X-SSG': 'gridsome'
}
const client = apiUrl
? new SiteClient(apiToken, clientHeaders, apiUrl)
: new SiteClient(apiToken, clientHeaders)
const loader = new Loader(client, previewMode)
await loader.load()
const { itemsRepo, entitiesRepo } = loader
const cache = {}
for (const itemType of itemsRepo.itemTypes) {
const { titleField, fields } = itemType
const slugField = fields.find(({ fieldType }) => fieldType === 'slug')
cache[itemType.id] = { titleField, slugField }
const collection = addCollection(
this.createTypeName(itemType.name),
)
{ actions, getNode, getNodesByType, reporter, parentSpan, schema, store },
{
apiToken,
disableLiveReload,
previewMode,
apiUrl,
localeFallbacks: rawLocaleFallbacks,
},
) => {
let client = apiUrl
? new SiteClient(apiToken, CLIENT_HEADERS, apiUrl)
: new SiteClient(apiToken, CLIENT_HEADERS);
const localeFallbacks = rawLocaleFallbacks || {};
const loader = new Loader(client, process.env.GATSBY_CLOUD || previewMode);
const program = store.getState().program;
const cacheDir = `${program.directory}/.cache/datocms-assets`;
if (!fs.existsSync(cacheDir)) {
fs.mkdirSync(cacheDir);
}
const context = {
entitiesRepo: loader.entitiesRepo,
actions,
getNode,
getNodesByType,
localeFallbacks,
schema,
store,