fix(common): convert absolute paths to urls for esm loading

Uses pathToFileURL to convert file system paths to proper URLs
before passing to the ESM loader, ensuring cross-platform compatibility.

Fixes #16179
This commit is contained in:
iamkanguk97
2026-01-12 00:05:45 +09:00
parent c9de047945
commit a52e60820e

View File

@@ -1,3 +1,4 @@
import { pathToFileURL } from 'url';
import { Logger } from '../../services/logger.service';
import { FileValidatorContext } from './file-validator-context.interface';
import { FileValidator } from './file-validator.interface';
@@ -123,14 +124,15 @@ export class FileTypeValidator extends FileValidator<
}
try {
let fileTypePath: string;
let fileTypeModule: string;
try {
fileTypePath = require.resolve('file-type');
const resolvedPath = require.resolve('file-type');
fileTypeModule = pathToFileURL(resolvedPath).href;
} catch {
fileTypePath = 'file-type';
fileTypeModule = 'file-type';
}
const { fileTypeFromBuffer } =
await loadEsm<typeof import('file-type')>(fileTypePath);
await loadEsm<typeof import('file-type')>(fileTypeModule);
const fileType = await fileTypeFromBuffer(file.buffer);
if (fileType) {