1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
11 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
12 | };
|
13 | Object.defineProperty(exports, "__esModule", { value: true });
|
14 | exports.computeFileTypeFromName = exports.getFileType = exports.supportMagicFileTypes = void 0;
|
15 |
|
16 | const path_1 = require("path");
|
17 | const file_type_1 = require("file-type");
|
18 | const media_typer_1 = __importDefault(require("media-typer"));
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | exports.supportMagicFileTypes = file_type_1.extensions;
|
24 |
|
25 |
|
26 |
|
27 | function parseMimeType(mime) {
|
28 | try {
|
29 | const { type, subtype } = media_typer_1.default.parse(mime);
|
30 | return { type, subtype };
|
31 | }
|
32 | catch (error) {
|
33 | return null;
|
34 | }
|
35 | }
|
36 |
|
37 |
|
38 |
|
39 | async function getFileType(fileContents) {
|
40 | |
41 |
|
42 |
|
43 | const magicType = await (0, file_type_1.fromBuffer)(fileContents);
|
44 | if (magicType) {
|
45 | return Object.assign({ ext: magicType.ext }, parseMimeType(magicType.mime));
|
46 | }
|
47 | return null;
|
48 | }
|
49 | exports.getFileType = getFileType;
|
50 |
|
51 |
|
52 |
|
53 | function computeFileTypeFromName(clientName, headers) {
|
54 | |
55 |
|
56 |
|
57 |
|
58 | return Object.assign({ ext: (0, path_1.extname)(clientName).replace(/^\./, '') }, parseMimeType(headers['content-type']));
|
59 | }
|
60 | exports.computeFileTypeFromName = computeFileTypeFromName;
|