@@ -281,7 +281,7 @@ export async function createSchemaCustomization(gatsbyApi, pluginOptions) {
281281 if ( downloadLocalImages )
282282 createTypes ( `
283283 type ${ typePrefix } Asset {
284- localFile: File @link
284+ localFile: File @link(from: "fields.localFile")
285285 }
286286 ` )
287287
@@ -304,7 +304,13 @@ export async function createSchemaCustomization(gatsbyApi, pluginOptions) {
304304}
305305
306306export async function onCreateNode (
307- { node, actions : { createNode } , createNodeId, getCache, cache } ,
307+ {
308+ node,
309+ actions : { createNode, createNodeField } ,
310+ createNodeId,
311+ getCache,
312+ cache,
313+ } ,
308314 {
309315 buildMarkdownNodes = false ,
310316 downloadLocalImages = false ,
@@ -314,7 +320,9 @@ export async function onCreateNode(
314320 if (
315321 downloadLocalImages &&
316322 node . remoteTypeName === 'Asset' &&
317- node . mimeType . includes ( 'image/' )
323+ [ 'image/png' , 'image/jpg' , 'image/jpeg' , 'image/tiff' , 'image/webp' ] . includes (
324+ node . mimeType
325+ )
318326 ) {
319327 try {
320328 const fileNode = await createRemoteFileNode ( {
@@ -327,7 +335,9 @@ export async function onCreateNode(
327335 ...( node . fileName && { name : node . fileName } ) ,
328336 } )
329337
330- if ( fileNode ) node . localFile = fileNode . id
338+ if ( fileNode ) {
339+ createNodeField ( { node, name : 'localFile' , value : fileNode . id } )
340+ }
331341 } catch ( e ) {
332342 console . error ( `[${ PLUGIN_NAME } ]` , e )
333343 }
@@ -388,7 +398,7 @@ function makeResolveGatsbyImageData(cache) {
388398 options
389399 ) {
390400 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 )
392402 ) {
393403 return null
394404 }
@@ -439,7 +449,7 @@ function makeResolveGatsbyImageData(cache) {
439449
440450export function createResolvers (
441451 { createResolvers, cache } ,
442- { typePrefix = 'GraphCMS_' }
452+ { typePrefix = 'GraphCMS_' , downloadLocalImages = false }
443453) {
444454 const args = {
445455 quality : {
@@ -464,6 +474,14 @@ export function createResolvers(
464474 type : 'JSON' ,
465475 } ,
466476 } ,
477+ ...( downloadLocalImages && {
478+ File : {
479+ gatsbyImageData : {
480+ ...getGatsbyImageResolver ( makeResolveGatsbyImageData ( cache ) , args ) ,
481+ type : 'JSON' ,
482+ } ,
483+ } ,
484+ } ) ,
467485 }
468486
469487 createResolvers ( resolvers )
0 commit comments