Skip to content

Commit 54832b4

Browse files
authored
fix(gatsby-source-wordpress): Add image cdn fields on updates (#35687)
add image cdn fields on updates too
1 parent 7156882 commit 54832b4

File tree

2 files changed

+51
-36
lines changed

2 files changed

+51
-36
lines changed

packages/gatsby-source-wordpress/src/steps/source-nodes/fetch-nodes/fetch-referenced-media-items.js

+36-26
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,33 @@ const pushPromiseOntoRetryQueue = ({
107107
})
108108
}
109109

110+
export const addImageCDNFieldsToNode = (node, pluginOptions) => {
111+
if (!node?.__typename?.includes(`MediaItem`)) {
112+
return node
113+
}
114+
115+
const placeholderUrl = getPlaceholderUrlFromMediaItemNode(node, pluginOptions)
116+
117+
const url = node.sourceUrl || node.mediaItemUrl
118+
119+
const filename =
120+
node?.mediaDetails?.file?.split(`/`)?.pop() ||
121+
path.basename(urlUtil.parse(url).pathname)
122+
123+
return {
124+
...node,
125+
url,
126+
contentType: node.contentType,
127+
mimeType: node.mimeType,
128+
filename,
129+
filesize: node?.mediaDetails?.fileSize,
130+
width: node?.mediaDetails?.width,
131+
height: node?.mediaDetails?.height,
132+
placeholderUrl:
133+
placeholderUrl ?? node?.mediaDetails?.sizes?.[0]?.sourceUrl ?? url,
134+
}
135+
}
136+
110137
export const createMediaItemNode = async ({
111138
node,
112139
helpers,
@@ -180,35 +207,18 @@ export const createMediaItemNode = async ({
180207
)
181208
}
182209

183-
const placeholderUrl = getPlaceholderUrlFromMediaItemNode(
184-
node,
210+
node = addImageCDNFieldsToNode(
211+
{
212+
...node,
213+
parent: null,
214+
internal: {
215+
contentDigest: createContentDigest(node),
216+
type: buildTypeName(`MediaItem`),
217+
},
218+
},
185219
pluginOptions
186220
)
187221

188-
const url = node.sourceUrl || node.mediaItemUrl
189-
190-
const filename =
191-
node?.mediaDetails?.file?.split(`/`)?.pop() ||
192-
path.basename(urlUtil.parse(url).pathname)
193-
194-
node = {
195-
...node,
196-
url,
197-
contentType: node.contentType,
198-
mimeType: node.mimeType,
199-
filename,
200-
filesize: node?.mediaDetails?.fileSize,
201-
width: node?.mediaDetails?.width,
202-
height: node?.mediaDetails?.height,
203-
placeholderUrl:
204-
placeholderUrl ?? node?.mediaDetails?.sizes?.[0]?.sourceUrl ?? url,
205-
parent: null,
206-
internal: {
207-
contentDigest: createContentDigest(node),
208-
type: buildTypeName(`MediaItem`),
209-
},
210-
}
211-
212222
if (localFileNode?.id) {
213223
node.localFile = {
214224
id: localFileNode?.id,

packages/gatsby-source-wordpress/src/steps/source-nodes/update-nodes/wp-actions/update.js

+15-10
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import chalk from "chalk"
55
import { getQueryInfoBySingleFieldName } from "../../helpers"
66
import { getGatsbyApi } from "~/utils/get-gatsby-api"
77
import { CREATED_NODE_IDS } from "~/constants"
8-
import fetchReferencedMediaItemsAndCreateNodes from "../../fetch-nodes/fetch-referenced-media-items"
8+
import fetchReferencedMediaItemsAndCreateNodes, {
9+
addImageCDNFieldsToNode,
10+
} from "../../fetch-nodes/fetch-referenced-media-items"
911

1012
import { dump } from "dumper.js"
1113
import { atob } from "atob"
@@ -194,16 +196,19 @@ export const createSingleNode = async ({
194196

195197
const builtTypename = buildTypeName(typeInfo.nodesTypeName)
196198

197-
let remoteNode = {
198-
...processedNode,
199-
__typename: builtTypename,
200-
id: id,
201-
parent: null,
202-
internal: {
203-
contentDigest: createContentDigest(updatedNodeContent),
204-
type: builtTypename,
199+
let remoteNode = addImageCDNFieldsToNode(
200+
{
201+
...processedNode,
202+
__typename: builtTypename,
203+
id: id,
204+
parent: null,
205+
internal: {
206+
contentDigest: createContentDigest(updatedNodeContent),
207+
type: builtTypename,
208+
},
205209
},
206-
}
210+
pluginOptions
211+
)
207212

208213
const typeSettings = getTypeSettingsByType({
209214
name: typeInfo.nodesTypeName,

0 commit comments

Comments
 (0)