diff --git a/packages/scaffold/src/utils/mime.ts b/packages/scaffold/src/utils/mime.ts index 396bb00..ce54f11 100644 --- a/packages/scaffold/src/utils/mime.ts +++ b/packages/scaffold/src/utils/mime.ts @@ -1,16 +1,16 @@ import { extname } from "node:path"; -const mimeTypes: { [key: string]: string[] } = { - "application/json": ["json"], - "application/x-xpinstall": ["xpi"], +const mimeTypes: { [key: string]: string } = { + json: "application/json", + xpi: "application/x-xpinstall", }; export function getMimeTypeByFileName(filename: string) { const ext = extname(filename); for (const type in mimeTypes) { - if (mimeTypes[type].includes(ext)) - return type; + if (ext === `.${type}`) + return mimeTypes[type]; } return undefined; diff --git a/packages/scaffold/test/unit/mime.test.ts b/packages/scaffold/test/unit/mime.test.ts new file mode 100644 index 0000000..6ca91f5 --- /dev/null +++ b/packages/scaffold/test/unit/mime.test.ts @@ -0,0 +1,18 @@ +import { describe, expect, it } from "vitest"; +import { getMimeTypeByFileName } from "../../src/utils/mime.js"; + +describe("mime", () => { + describe("getMimeTypeByFileName", () => { + it("should return application/json for json files", () => { + expect(getMimeTypeByFileName("test.json")).toEqual("application/json"); + }); + + it("should return application/x-xpinstall for xpi files", () => { + expect(getMimeTypeByFileName("test.xpi")).toEqual("application/x-xpinstall"); + }); + + it("should return undefined for unknown file types", () => { + expect(getMimeTypeByFileName("test.unknown")).toBeUndefined(); + }); + }); +});