Skip to content

Commit 00870bb

Browse files
vladarpvdz
andauthored
fix(gatsby-source-filesystem): Use new FileType methods to read file extension (#28156) (#28178)
(cherry picked from commit 616e9e3) Co-authored-by: Peter van der Zee <[email protected]>
1 parent 9e3ceec commit 00870bb

File tree

4 files changed

+74
-26
lines changed

4 files changed

+74
-26
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.2",
13-
"file-type": "^12.4.2",
13+
"file-type": "^16.0.0",
1414
"fs-extra": "^8.1.0",
1515
"gatsby-core-utils": "^1.5.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.13.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: 71 additions & 20 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"
@@ -10752,11 +10770,21 @@ [email protected], file-type@^5.2.0:
1075210770
version "5.2.0"
1075310771
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
1075410772

10755-
file-type@^12.0.0, file-type@^12.4.2:
10773+
file-type@^12.0.0:
1075610774
version "12.4.2"
1075710775
resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9"
1075810776
integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==
1075910777

10778+
file-type@^16.0.0:
10779+
version "16.0.1"
10780+
resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.0.1.tgz#d12d19c716e49d79e0a27bcf502961498b0b9928"
10781+
integrity sha512-rwXqMZiizJd0uXZE52KN2DtPBAV99qz9cUTHHt8pSyaQzgVYrHJGR0qt2p4N/yzHEL/tGrlB/TgawQb4Fnxxyw==
10782+
dependencies:
10783+
readable-web-to-node-stream "^3.0.0"
10784+
strtok3 "^6.0.3"
10785+
token-types "^2.0.0"
10786+
typedarray-to-buffer "^3.1.5"
10787+
1076010788
file-type@^3.8.0:
1076110789
version "3.9.0"
1076210790
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
@@ -12989,6 +13017,11 @@ idb-keyval@^3.2.0:
1298913017
resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-3.2.0.tgz#cbbf354deb5684b6cdc84376294fc05932845bd6"
1299013018
integrity sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ==
1299113019

13020+
ieee754@^1.1.13:
13021+
version "1.2.1"
13022+
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
13023+
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
13024+
1299213025
ieee754@^1.1.4:
1299313026
version "1.1.12"
1299413027
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
@@ -18287,7 +18320,7 @@ p-try@^1.0.0:
1828718320
version "1.0.0"
1828818321
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
1828918322

18290-
p-try@^2.0.0, p-try@^2.1.0:
18323+
p-try@^2.0.0:
1829118324
version "2.2.0"
1829218325
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1829318326
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
@@ -18726,6 +18759,11 @@ pdf2json@^1.2.0:
1872618759
optimist "^0.6.1"
1872718760
xmldom "^0.3.0"
1872818761

18762+
peek-readable@^3.1.0:
18763+
version "3.1.0"
18764+
resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.0.tgz#250b08b7de09db8573d7fd8ea475215bbff14348"
18765+
integrity sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==
18766+
1872918767
pend@~1.2.0:
1873018768
version "1.2.0"
1873118769
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -20160,14 +20198,6 @@ react@^16.12.0, react@^16.8.0:
2016020198
object-assign "^4.1.1"
2016120199
prop-types "^15.6.2"
2016220200

20163-
read-chunk@^3.2.0:
20164-
version "3.2.0"
20165-
resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca"
20166-
integrity sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==
20167-
dependencies:
20168-
pify "^4.0.1"
20169-
with-open-file "^0.1.6"
20170-
2017120201
read-cmd-shim@^1.0.1:
2017220202
version "1.0.1"
2017320203
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b"
@@ -20308,7 +20338,7 @@ [email protected], readable-stream@~1.0.31:
2030820338
isarray "0.0.1"
2030920339
string_decoder "~0.10.x"
2031020340

20311-
"readable-stream@2 || 3", readable-stream@^3.0.1, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0:
20341+
"readable-stream@2 || 3", readable-stream@^3.0.1, 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:
2031220342
version "3.6.0"
2031320343
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
2031420344
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -20340,6 +20370,14 @@ readable-stream@~2.1.0:
2034020370
string_decoder "~0.10.x"
2034120371
util-deprecate "~1.0.1"
2034220372

20373+
readable-web-to-node-stream@^3.0.0:
20374+
version "3.0.0"
20375+
resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz#4ca5408e70471069119d691934141a52de413955"
20376+
integrity sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA==
20377+
dependencies:
20378+
"@types/readable-stream" "^2.3.9"
20379+
readable-stream "^3.6.0"
20380+
2034320381
readdir-scoped-modules@^1.0.0:
2034420382
version "1.0.2"
2034520383
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
@@ -22167,6 +22205,11 @@ sade@^1.7.3:
2216722205
dependencies:
2216822206
mri "^1.1.0"
2216922207

22208+
safe-buffer@*:
22209+
version "5.2.1"
22210+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
22211+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
22212+
2217022213
[email protected], safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2217122214
version "5.1.2"
2217222215
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -23529,6 +23572,15 @@ strong-log-transformer@^2.0.0:
2352923572
minimist "^1.2.0"
2353023573
through "^2.3.4"
2353123574

23575+
strtok3@^6.0.3:
23576+
version "6.0.4"
23577+
resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.0.4.tgz#ede0d20fde5aa9fda56417c3558eaafccc724694"
23578+
integrity sha512-rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==
23579+
dependencies:
23580+
"@tokenizer/token" "^0.1.1"
23581+
"@types/debug" "^4.1.5"
23582+
peek-readable "^3.1.0"
23583+
2353223584
style-inject@^0.3.0:
2353323585
version "0.3.0"
2353423586
resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3"
@@ -24316,6 +24368,14 @@ [email protected]:
2431624368
version "1.0.0"
2431724369
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
2431824370

24371+
token-types@^2.0.0:
24372+
version "2.0.0"
24373+
resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.0.0.tgz#b23618af744818299c6fbf125e0fdad98bab7e85"
24374+
integrity sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==
24375+
dependencies:
24376+
"@tokenizer/token" "^0.1.0"
24377+
ieee754 "^1.1.13"
24378+
2431924379
toml@^2.3.2, toml@^2.3.6:
2432024380
version "2.3.6"
2432124381
resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.6.tgz#25b0866483a9722474895559088b436fd11f861b"
@@ -25952,15 +26012,6 @@ windows-release@^3.1.0:
2595226012
dependencies:
2595326013
execa "^1.0.0"
2595426014

25955-
with-open-file@^0.1.6:
25956-
version "0.1.6"
25957-
resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.6.tgz#0bc178ecab75f6baac8ae11c85e07445d690ea50"
25958-
integrity sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==
25959-
dependencies:
25960-
p-finally "^1.0.0"
25961-
p-try "^2.1.0"
25962-
pify "^4.0.1"
25963-
2596426015
wmf@~1.0.1:
2596526016
version "1.0.1"
2596626017
resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.1.tgz#f8690f185651bf88d39f0a21ae3e51bb1ec9fae9"

0 commit comments

Comments
 (0)