Skip to content

Commit 1341e05

Browse files
Merge pull request #14974 from Borewit/prevent-wrapping-javascript-in-eval
refactor(common): Prevent JavaScript being wrapped in `eval`
2 parents a6bdfd1 + 1e43fcb commit 1341e05

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"fast-safe-stringify": "2.1.1",
7070
"file-type": "20.4.1",
7171
"iterare": "1.2.1",
72+
"load-esm": "^1.0.2",
7273
"object-hash": "3.0.0",
7374
"path-to-regexp": "8.2.0",
7475
"reflect-metadata": "0.2.2",

packages/common/pipes/file/file-type.validator.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { FileValidator } from './file-validator.interface';
22
import { IFile } from './interfaces';
3+
import { loadEsm } from 'load-esm';
34

45
export type FileTypeValidatorOptions = {
56
fileType: string | RegExp;
@@ -50,9 +51,8 @@ export class FileTypeValidator extends FileValidator<
5051
}
5152

5253
try {
53-
const { fileTypeFromBuffer } = (await eval(
54-
'import ("file-type")',
55-
)) as typeof import('file-type');
54+
const { fileTypeFromBuffer } =
55+
await loadEsm<typeof import('file-type')>('file-type');
5656

5757
const fileType = await fileTypeFromBuffer(file.buffer);
5858

0 commit comments

Comments
 (0)