Skip to content

Commit aa6c3d7

Browse files
committed
add binary.ts to utils in open-next package
1 parent ee9367c commit aa6c3d7

File tree

6 files changed

+71
-5
lines changed

6 files changed

+71
-5
lines changed

packages/open-next/src/adapters/cache.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { isBinaryContentType } from "./binary";
1+
import { isBinaryContentType } from "../utils/binary";
22
import { debug, error, warn } from "./logger";
33

44
interface CachedFetchValue {

packages/open-next/src/build/createAssets.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import fs from "node:fs";
22
import path from "node:path";
33

4-
import { isBinaryContentType } from "../adapters/binary.js";
4+
import { isBinaryContentType } from "../utils/binary.js";
55
import logger from "../logger.js";
66
import * as buildHelper from "./helper.js";
77

packages/open-next/src/core/routing/util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { parseHeaders } from "http/util.js";
99
import type { MiddlewareManifest } from "types/next-types";
1010
import type { InternalEvent, InternalResult } from "types/open-next.js";
1111

12-
import { isBinaryContentType } from "../../adapters/binary.js";
12+
import { isBinaryContentType } from "../../utils/binary.js";
1313
import { debug, error } from "../../adapters/logger.js";
1414

1515
/**

packages/open-next/src/overrides/proxyExternalRequest/node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { request } from "node:https";
33
import { Readable } from "node:stream";
44
import type { InternalEvent, InternalResult } from "types/open-next";
55
import type { ProxyExternalRequest } from "types/overrides";
6-
import { isBinaryContentType } from "../../adapters/binary";
6+
import { isBinaryContentType } from "../../utils/binary";
77

88
function filterHeadersForProxy(
99
headers: Record<string, string | string[] | undefined>,
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
const commonBinaryMimeTypes = new Set([
2+
"application/octet-stream",
3+
// Docs
4+
"application/epub+zip",
5+
"application/msword",
6+
"application/pdf",
7+
"application/rtf",
8+
"application/vnd.amazon.ebook",
9+
"application/vnd.ms-excel",
10+
"application/vnd.ms-powerpoint",
11+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
12+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
13+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
14+
// Fonts
15+
"font/otf",
16+
"font/woff",
17+
"font/woff2",
18+
// Images
19+
"image/bmp",
20+
"image/gif",
21+
"image/jpeg",
22+
"image/png",
23+
"image/tiff",
24+
"image/vnd.microsoft.icon",
25+
"image/webp",
26+
// Audio
27+
"audio/3gpp",
28+
"audio/aac",
29+
"audio/basic",
30+
"audio/mpeg",
31+
"audio/ogg",
32+
"audio/wavaudio/webm",
33+
"audio/x-aiff",
34+
"audio/x-midi",
35+
"audio/x-wav",
36+
// Video
37+
"video/3gpp",
38+
"video/mp2t",
39+
"video/mpeg",
40+
"video/ogg",
41+
"video/quicktime",
42+
"video/webm",
43+
"video/x-msvideo",
44+
// Archives
45+
"application/java-archive",
46+
"application/vnd.apple.installer+xml",
47+
"application/x-7z-compressed",
48+
"application/x-apple-diskimage",
49+
"application/x-bzip",
50+
"application/x-bzip2",
51+
"application/x-gzip",
52+
"application/x-java-archive",
53+
"application/x-rar-compressed",
54+
"application/x-tar",
55+
"application/x-zip",
56+
"application/zip",
57+
// Serialized data
58+
"application/x-protobuf",
59+
]);
60+
61+
export function isBinaryContentType(contentType?: string | null) {
62+
if (!contentType) return false;
63+
64+
const value = contentType?.split(";")[0] ?? "";
65+
return commonBinaryMimeTypes.has(value);
66+
}

packages/tests-unit/tests/binary.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { isBinaryContentType } from "@opennextjs/aws/adapters/binary.js";
1+
import { isBinaryContentType } from "@opennextjs/aws/utils/binary.js";
22

33
describe("isBinaryContentType", () => {
44
const tests = [

0 commit comments

Comments
 (0)