Skip to content

Commit 2077da8

Browse files
authored
fix: update file-type dependency and fix dependency version mismatch (#6638)
1 parent b2751f7 commit 2077da8

File tree

14 files changed

+33
-86
lines changed

14 files changed

+33
-86
lines changed

.idea/runConfigurations/_template__of_JavaScriptTestRunnerJest.xml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@
4141
"source.fixAll.eslint": "explicit"
4242
}
4343
},
44-
"files.insertFinalNewline": true
44+
"files.insertFinalNewline": true,
45+
"jestrunner.jestCommand": "pnpm exec cross-env NODE_OPTIONS=\"--experimental-vm-modules --no-deprecation\" node 'node_modules/jest/bin/jest.js'"
4546
}

jest.config.js

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,7 @@
1-
/**
2-
* Ignores all ESM packages that make Jest mad.
3-
*
4-
* "Jest encountered an unexpected token"
5-
*
6-
* Direct packages:
7-
* - file-type
8-
*/
9-
const esModules = [
10-
// file-type and all dependencies: https://github.com/sindresorhus/file-type
11-
'file-type',
12-
'strtok3',
13-
'readable-web-to-node-stream',
14-
'token-types',
15-
'peek-readable',
16-
].join('|')
17-
18-
/** @type {import('jest').Config} */
19-
const baseJestConfig = {
1+
/** @type {import('jest').Config} */ const baseJestConfig = {
202
extensionsToTreatAsEsm: ['.ts', '.tsx'],
21-
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.ts'],
3+
setupFiles: ['<rootDir>/test/jest.setup.env.js'],
4+
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.js'],
225
moduleNameMapper: {
236
'\\.(css|scss)$': '<rootDir>/test/helpers/mocks/emptyModule.js',
247
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
@@ -31,10 +14,6 @@ const baseJestConfig = {
3114
transform: {
3215
'^.+\\.(t|j)sx?$': ['@swc/jest'],
3316
},
34-
transformIgnorePatterns: [
35-
`/node_modules/(?!.pnpm)(?!(${esModules})/)`,
36-
`/node_modules/.pnpm/(?!(${esModules.replace(/\//g, '\\+')})@)`,
37-
],
3817
verbose: true,
3918
}
4019

packages/create-payload-app/jest.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
/** @type {import('jest').Config} */
1414
const customJestConfig = {
1515
extensionsToTreatAsEsm: ['.ts', '.tsx'],
16-
// setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
16+
// setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
1717
moduleNameMapper: {
1818
'\\.(css|scss)$': '<rootDir>/helpers/mocks/emptyModule.js',
1919
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':

packages/next/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"@payloadcms/translations": "workspace:*",
4848
"@payloadcms/ui": "workspace:*",
4949
"busboy": "^1.6.0",
50-
"file-type": "19.0.0 || 19.0.0-rc-f994737d14-20240522",
50+
"file-type": "17.1.6",
5151
"graphql-http": "^1.22.0",
5252
"graphql-playground-html": "1.6.30",
5353
"http-status": "1.6.2",

packages/payload/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
"console-table-printer": "2.11.2",
9090
"dataloader": "2.2.2",
9191
"deepmerge": "4.3.1",
92-
"file-type": "16.5.4",
92+
"file-type": "17.1.6",
9393
"find-up": "7.0.0",
9494
"get-tsconfig": "^4.7.2",
9595
"http-status": "1.6.2",

packages/payload/src/uploads/generateFileData.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type { OutputInfo, Sharp, SharpOptions } from 'sharp'
22

3-
import fileType from 'file-type'
4-
const { fromBuffer } = fileType
3+
import { fileTypeFromBuffer } from 'file-type'
54
import fs from 'fs'
65
import mkdirp from 'mkdirp'
76
import sanitize from 'sanitize-filename'
@@ -161,7 +160,7 @@ export const generateFileData = async <T>({
161160
if (sharpFile) {
162161
const metadata = await sharpFile.metadata()
163162
fileBuffer = await sharpFile.toBuffer({ resolveWithObject: true })
164-
;({ ext, mime } = await fromBuffer(fileBuffer.data)) // This is getting an incorrect gif height back.
163+
;({ ext, mime } = await fileTypeFromBuffer(fileBuffer.data)) // This is getting an incorrect gif height back.
165164
fileData.width = fileBuffer.info.width
166165
fileData.height = fileBuffer.info.height
167166
fileData.filesize = fileBuffer.info.size

packages/payload/src/uploads/getFileByPath.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import fileType from 'file-type'
1+
import { fileTypeFromFile } from 'file-type'
22
import fs from 'fs'
33
import path from 'path'
4-
const { fromFile } = fileType
54

65
import type { PayloadRequestWithData } from '../types/index.js'
76

@@ -12,7 +11,7 @@ const mimeTypeEstimate = {
1211
export const getFileByPath = async (filePath: string): Promise<PayloadRequestWithData['file']> => {
1312
if (typeof filePath === 'string') {
1413
const data = fs.readFileSync(filePath)
15-
const mimetype = fromFile(filePath)
14+
const mimetype = fileTypeFromFile(filePath)
1615
const { size } = fs.statSync(filePath)
1716

1817
const name = path.basename(filePath)

packages/payload/src/uploads/imageResizer.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import type { OutputInfo, Sharp, SharpOptions } from 'sharp'
22

3-
import fileType from 'file-type'
4-
const { fromBuffer } = fileType
5-
3+
import { fileTypeFromBuffer } from 'file-type'
64
import fs from 'fs'
75
import sanitize from 'sanitize-filename'
86

@@ -343,7 +341,7 @@ export async function resizeAndTransformImageSizes({
343341
req.payloadUploadSizes[imageResizeConfig.name] = bufferData
344342
}
345343

346-
const mimeInfo = await fromBuffer(bufferData)
344+
const mimeInfo = await fileTypeFromBuffer(bufferData)
347345

348346
const imageNameWithDimensions = createImageName(
349347
sanitizedImage.name,

pnpm-lock.yaml

Lines changed: 4 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)