File tree Expand file tree Collapse file tree 1 file changed +51
-23
lines changed
packages/gatsby-source-wordpress/src Expand file tree Collapse file tree 1 file changed +51
-23
lines changed Original file line number Diff line number Diff line change @@ -385,32 +385,60 @@ exports.downloadMediaFiles = async ({
385385 cache,
386386 createNode,
387387 _auth,
388- } ) =>
389- Promise . all (
390- entities . map ( async e => {
391- let fileNode
392- if ( e . __type === `wordpress__wp_media` ) {
393- try {
394- fileNode = await createRemoteFileNode ( {
395- url : e . source_url ,
396- store,
397- cache,
398- createNode,
399- auth : _auth ,
400- } )
401- } catch ( e ) {
402- // Ignore
388+ } ) => {
389+ const remoteCache = { }
390+ const cacheId = url => `gatsby-source-wordpress-remote-file-node-id-${ url } `
391+
392+ const createMediaFileNodes = async ( ) =>
393+ Promise . all (
394+ entities . map ( async e => {
395+ if ( e . source_url && remoteCache [ e . source_url ] ) {
396+ return e
403397 }
404- }
405398
406- if ( fileNode ) {
407- e . localFile___NODE = fileNode . id
408- delete e . media_details . sizes
409- }
399+ let fileNode
400+ if ( e . __type === `wordpress__wp_media` ) {
401+ try {
402+ remoteCache [ e . source_url ] = true
403+ fileNode = await createRemoteFileNode ( {
404+ url : e . source_url ,
405+ store,
406+ cache,
407+ createNode,
408+ auth : _auth ,
409+ } )
410+ } catch ( e ) {
411+ // Ignore
412+ }
413+ }
414+ if ( fileNode ) {
415+ await cache . set ( cacheId ( e . source_url ) , fileNode . id )
416+ }
410417
411- return e
412- } )
413- )
418+ return e
419+ } )
420+ )
421+
422+ const mapLocalFileNodes = async ( ) =>
423+ Promise . all (
424+ entities . map ( async e => {
425+ if ( e . __type === `wordpress__wp_media` ) {
426+ const cachedNodeId = await cache . get ( cacheId ( e . source_url ) )
427+ if ( cachedNodeId ) {
428+ e . localFile___NODE = cachedNodeId
429+ delete e . media_details . sizes
430+ }
431+ }
432+
433+ return e
434+ } )
435+ )
436+
437+ entities = await createMediaFileNodes ( )
438+ entities = await mapLocalFileNodes ( )
439+
440+ return entities
441+ }
414442
415443const createACFChildNodes = (
416444 obj ,
You can’t perform that action at this time.
0 commit comments