Skip to content

Commit 616e9e3

Browse files
authored
fix(gatsby-source-filesystem): Use new FileType methods to read file extension (#28156)
1 parent 4d8ab78 commit 616e9e3

File tree

4 files changed

+75
-27
lines changed

4 files changed

+75
-27
lines changed

packages/gatsby-source-filesystem/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,14 @@
1010
"@babel/runtime": "^7.12.5",
1111
"better-queue": "^3.8.10",
1212
"chokidar": "^3.4.3",
13-
"file-type": "^12.4.2",
13+
"file-type": "^16.0.0",
1414
"fs-extra": "^8.1.0",
1515
"gatsby-core-utils": "^1.6.0-next.0",
1616
"got": "^9.6.0",
1717
"md5-file": "^5.0.0",
1818
"mime": "^2.4.6",
1919
"pretty-bytes": "^5.4.1",
2020
"progress": "^2.0.3",
21-
"read-chunk": "^3.2.0",
2221
"valid-url": "^1.0.9",
2322
"xstate": "^4.14.0"
2423
},

packages/gatsby-source-filesystem/src/create-file-node-from-buffer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ async function processBufferNode({
7070
// If the user did not provide an extension and we couldn't get
7171
// one from remote file, try and guess one
7272
if (typeof ext === `undefined`) {
73-
const filetype = fileType(buffer)
73+
const filetype = await fileType.fromBuffer(buffer)
7474
ext = filetype ? `.${filetype.ext}` : `.bin`
7575
}
7676

packages/gatsby-source-filesystem/src/create-remote-file-node.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ const { createContentDigest } = require(`gatsby-core-utils`)
44
const path = require(`path`)
55
const { isWebUri } = require(`valid-url`)
66
const Queue = require(`better-queue`)
7-
const readChunk = require(`read-chunk`)
87
const fileType = require(`file-type`)
98
const { createProgress } = require(`./utils`)
109

@@ -290,8 +289,7 @@ async function fetchRemoteNode({
290289
if (ext === ``) {
291290
if (response.statusCode === 200) {
292291
// if this is fresh response - try to guess extension and cache result for future
293-
const buffer = readChunk.sync(tmpFilename, 0, fileType.minimumBytes)
294-
const filetype = fileType(buffer)
292+
const filetype = await fileType.fromFile(tmpFilename)
295293
if (filetype) {
296294
ext = `.${filetype.ext}`
297295
await cache.set(cacheIdForExtensions(url), ext)

yarn.lock

Lines changed: 72 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3674,6 +3674,11 @@
36743674
"@theme-ui/core" "^0.4.0-rc.7"
36753675
"@theme-ui/mdx" "^0.4.0-rc.7"
36763676

3677+
"@tokenizer/token@^0.1.0", "@tokenizer/token@^0.1.1":
3678+
version "0.1.1"
3679+
resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3"
3680+
integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==
3681+
36773682
"@turist/fetch@^7.1.7":
36783683
version "7.1.7"
36793684
resolved "https://registry.yarnpkg.com/@turist/fetch/-/fetch-7.1.7.tgz#a2b1f7ec0265e6fe0946c51eef34bad9b9efc865"
@@ -3822,6 +3827,11 @@
38223827
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.30.tgz#dc1e40f7af3b9c815013a7860e6252f6352a84df"
38233828
integrity sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==
38243829

3830+
"@types/debug@^4.1.5":
3831+
version "4.1.5"
3832+
resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
3833+
integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
3834+
38253835
"@types/eslint-visitor-keys@^1.0.0":
38263836
version "1.0.0"
38273837
resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
@@ -4160,6 +4170,14 @@
41604170
"@types/prop-types" "*"
41614171
csstype "^3.0.2"
41624172

4173+
"@types/readable-stream@^2.3.9":
4174+
version "2.3.9"
4175+
resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.9.tgz#40a8349e6ace3afd2dd1b6d8e9b02945de4566a9"
4176+
integrity sha512-sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==
4177+
dependencies:
4178+
"@types/node" "*"
4179+
safe-buffer "*"
4180+
41634181
"@types/reflexbox@^4.0.0":
41644182
version "4.0.1"
41654183
resolved "https://registry.yarnpkg.com/@types/reflexbox/-/reflexbox-4.0.1.tgz#dfe91aace3c931766507cfd1cce65498a4d052a0"
@@ -4211,7 +4229,7 @@
42114229
"@types/express-serve-static-core" "*"
42124230
"@types/mime" "*"
42134231

4214-
"@types/sharp@^0.26.0", "@types/sharp@^0.26.1":
4232+
"@types/sharp@^0.26.1":
42154233
version "0.26.1"
42164234
resolved "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.26.1.tgz#92f6b3e65fb02a54ac7027cea0d17cf64f0d2958"
42174235
integrity sha512-vOFcnP0+aQFDb+ToKVIj8ZV6xQ7pNYGGPeYweLHxyjoQUcIGj8iY9R3OVmJyRR5KUkb0Y4obBbMjoTrBXw6AQA==
@@ -10730,11 +10748,21 @@ [email protected], file-type@^5.2.0:
1073010748
version "5.2.0"
1073110749
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
1073210750

10733-
file-type@^12.0.0, file-type@^12.4.2:
10751+
file-type@^12.0.0:
1073410752
version "12.4.2"
1073510753
resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9"
1073610754
integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==
1073710755

10756+
file-type@^16.0.0:
10757+
version "16.0.1"
10758+
resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.0.1.tgz#d12d19c716e49d79e0a27bcf502961498b0b9928"
10759+
integrity sha512-rwXqMZiizJd0uXZE52KN2DtPBAV99qz9cUTHHt8pSyaQzgVYrHJGR0qt2p4N/yzHEL/tGrlB/TgawQb4Fnxxyw==
10760+
dependencies:
10761+
readable-web-to-node-stream "^3.0.0"
10762+
strtok3 "^6.0.3"
10763+
token-types "^2.0.0"
10764+
typedarray-to-buffer "^3.1.5"
10765+
1073810766
file-type@^3.8.0:
1073910767
version "3.9.0"
1074010768
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
@@ -12967,6 +12995,11 @@ idb-keyval@^3.2.0:
1296712995
resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-3.2.0.tgz#cbbf354deb5684b6cdc84376294fc05932845bd6"
1296812996
integrity sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ==
1296912997

12998+
ieee754@^1.1.13:
12999+
version "1.2.1"
13000+
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
13001+
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
13002+
1297013003
ieee754@^1.1.4:
1297113004
version "1.1.12"
1297213005
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
@@ -18265,7 +18298,7 @@ p-try@^1.0.0:
1826518298
version "1.0.0"
1826618299
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
1826718300

18268-
p-try@^2.0.0, p-try@^2.1.0:
18301+
p-try@^2.0.0:
1826918302
version "2.2.0"
1827018303
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1827118304
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
@@ -18704,6 +18737,11 @@ pdf2json@^1.2.0:
1870418737
optimist "^0.6.1"
1870518738
xmldom "^0.3.0"
1870618739

18740+
peek-readable@^3.1.0:
18741+
version "3.1.0"
18742+
resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.0.tgz#250b08b7de09db8573d7fd8ea475215bbff14348"
18743+
integrity sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==
18744+
1870718745
pend@~1.2.0:
1870818746
version "1.2.0"
1870918747
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -20138,14 +20176,6 @@ react@^16.12.0, react@^16.8.0:
2013820176
object-assign "^4.1.1"
2013920177
prop-types "^15.6.2"
2014020178

20141-
read-chunk@^3.2.0:
20142-
version "3.2.0"
20143-
resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca"
20144-
integrity sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==
20145-
dependencies:
20146-
pify "^4.0.1"
20147-
with-open-file "^0.1.6"
20148-
2014920179
read-cmd-shim@^1.0.1:
2015020180
version "1.0.1"
2015120181
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b"
@@ -20286,7 +20316,7 @@ [email protected], readable-stream@~1.0.31:
2028620316
isarray "0.0.1"
2028720317
string_decoder "~0.10.x"
2028820318

20289-
"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0:
20319+
"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
2029020320
version "3.6.0"
2029120321
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
2029220322
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -20318,6 +20348,14 @@ readable-stream@~2.1.0:
2031820348
string_decoder "~0.10.x"
2031920349
util-deprecate "~1.0.1"
2032020350

20351+
readable-web-to-node-stream@^3.0.0:
20352+
version "3.0.0"
20353+
resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz#4ca5408e70471069119d691934141a52de413955"
20354+
integrity sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA==
20355+
dependencies:
20356+
"@types/readable-stream" "^2.3.9"
20357+
readable-stream "^3.6.0"
20358+
2032120359
readdir-scoped-modules@^1.0.0:
2032220360
version "1.0.2"
2032320361
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
@@ -22145,6 +22183,11 @@ sade@^1.7.3:
2214522183
dependencies:
2214622184
mri "^1.1.0"
2214722185

22186+
safe-buffer@*:
22187+
version "5.2.1"
22188+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
22189+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
22190+
2214822191
[email protected], safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2214922192
version "5.1.2"
2215022193
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -23507,6 +23550,15 @@ strong-log-transformer@^2.0.0:
2350723550
minimist "^1.2.0"
2350823551
through "^2.3.4"
2350923552

23553+
strtok3@^6.0.3:
23554+
version "6.0.4"
23555+
resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.0.4.tgz#ede0d20fde5aa9fda56417c3558eaafccc724694"
23556+
integrity sha512-rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==
23557+
dependencies:
23558+
"@tokenizer/token" "^0.1.1"
23559+
"@types/debug" "^4.1.5"
23560+
peek-readable "^3.1.0"
23561+
2351023562
style-inject@^0.3.0:
2351123563
version "0.3.0"
2351223564
resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3"
@@ -24273,6 +24325,14 @@ [email protected]:
2427324325
version "1.0.0"
2427424326
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
2427524327

24328+
token-types@^2.0.0:
24329+
version "2.0.0"
24330+
resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.0.0.tgz#b23618af744818299c6fbf125e0fdad98bab7e85"
24331+
integrity sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==
24332+
dependencies:
24333+
"@tokenizer/token" "^0.1.0"
24334+
ieee754 "^1.1.13"
24335+
2427624336
toml@^2.3.2, toml@^2.3.6:
2427724337
version "2.3.6"
2427824338
resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b"
@@ -25909,15 +25969,6 @@ windows-release@^3.1.0:
2590925969
dependencies:
2591025970
execa "^1.0.0"
2591125971

25912-
with-open-file@^0.1.6:
25913-
version "0.1.6"
25914-
resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.6.tgz#0bc178ecab75f6baac8ae11c85e07445d690ea50"
25915-
integrity sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==
25916-
dependencies:
25917-
p-finally "^1.0.0"
25918-
p-try "^2.1.0"
25919-
pify "^4.0.1"
25920-
2592125972
wmf@~1.0.1:
2592225973
version "1.0.1"
2592325974
resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.1.tgz#f8690f185651bf88d39f0a21ae3e51bb1ec9fae9"

0 commit comments

Comments
 (0)