@@ -281,7 +281,7 @@ export async function createSchemaCustomization(gatsbyApi, pluginOptions) {
281
281
if ( downloadLocalImages )
282
282
createTypes ( `
283
283
type ${ typePrefix } Asset {
284
- localFile: File @link
284
+ localFile: File @link(from: "fields.localFile")
285
285
}
286
286
` )
287
287
@@ -304,7 +304,13 @@ export async function createSchemaCustomization(gatsbyApi, pluginOptions) {
304
304
}
305
305
306
306
export async function onCreateNode (
307
- { node, actions : { createNode } , createNodeId, getCache, cache } ,
307
+ {
308
+ node,
309
+ actions : { createNode, createNodeField } ,
310
+ createNodeId,
311
+ getCache,
312
+ cache,
313
+ } ,
308
314
{
309
315
buildMarkdownNodes = false ,
310
316
downloadLocalImages = false ,
@@ -314,7 +320,9 @@ export async function onCreateNode(
314
320
if (
315
321
downloadLocalImages &&
316
322
node . remoteTypeName === 'Asset' &&
317
- node . mimeType . includes ( 'image/' )
323
+ [ 'image/png' , 'image/jpg' , 'image/jpeg' , 'image/tiff' , 'image/webp' ] . includes (
324
+ node . mimeType
325
+ )
318
326
) {
319
327
try {
320
328
const fileNode = await createRemoteFileNode ( {
@@ -327,7 +335,9 @@ export async function onCreateNode(
327
335
...( node . fileName && { name : node . fileName } ) ,
328
336
} )
329
337
330
- if ( fileNode ) node . localFile = fileNode . id
338
+ if ( fileNode ) {
339
+ createNodeField ( { node, name : 'localFile' , value : fileNode . id } )
340
+ }
331
341
} catch ( e ) {
332
342
console . error ( `[${ PLUGIN_NAME } ]` , e )
333
343
}
@@ -388,7 +398,7 @@ function makeResolveGatsbyImageData(cache) {
388
398
options
389
399
) {
390
400
if (
391
- ! [ 'image/png' , 'image/jpg' , 'image/jpeg' , 'image/tiff' ] . includes ( mimeType )
401
+ ! [ 'image/png' , 'image/jpg' , 'image/jpeg' , 'image/tiff' , 'image/webp' ] . includes ( mimeType )
392
402
) {
393
403
return null
394
404
}
@@ -439,7 +449,7 @@ function makeResolveGatsbyImageData(cache) {
439
449
440
450
export function createResolvers (
441
451
{ createResolvers, cache } ,
442
- { typePrefix = 'GraphCMS_' }
452
+ { typePrefix = 'GraphCMS_' , downloadLocalImages = false }
443
453
) {
444
454
const args = {
445
455
quality : {
@@ -464,6 +474,14 @@ export function createResolvers(
464
474
type : 'JSON' ,
465
475
} ,
466
476
} ,
477
+ ...( downloadLocalImages && {
478
+ File : {
479
+ gatsbyImageData : {
480
+ ...getGatsbyImageResolver ( makeResolveGatsbyImageData ( cache ) , args ) ,
481
+ type : 'JSON' ,
482
+ } ,
483
+ } ,
484
+ } ) ,
467
485
}
468
486
469
487
createResolvers ( resolvers )
0 commit comments