diff --git a/api/contact/index.ts b/api/contact/index.ts index 240e608..77da68f 100644 --- a/api/contact/index.ts +++ b/api/contact/index.ts @@ -1,9 +1,9 @@ import type { VercelRequest, VercelResponse } from "@vercel/node"; import { checkRateLimit } from "@vercel/firewall" -import { setCorsHeaders } from "./cors.js"; -import { isValidBody } from "./validation.js"; -import { getEmailConfig, sendEmail } from "./email.js"; -import { config } from "./config.js"; +import { setCorsHeaders } from "@/src/cors.js"; +import { isValidBody } from "@/src/validation.js"; +import { getEmailConfig, sendEmail } from "@/src/email.js"; +import { config } from "@/src/config.js"; export default async (req: VercelRequest, res: VercelResponse): Promise => { const cors = setCorsHeaders(req, res, config.allowedOrigins); diff --git a/package-lock.json b/package-lock.json index dc00065..ebe9a1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "contact-api", - "version": "1.0.0", + "version": "1.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "contact-api", - "version": "1.0.0", + "version": "1.1.1", "license": "MIT", "dependencies": { "@vercel/firewall": "^1.1.2", diff --git a/package.json b/package.json index bfb6109..b348f11 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "contact-api", "type": "module", - "version": "1.1.0", + "version": "1.1.1", "description": "Deployable contact form API", "author": "Mason L'Etoile", "license": "MIT", diff --git a/api/contact/config.ts b/src/config.ts similarity index 100% rename from api/contact/config.ts rename to src/config.ts diff --git a/api/contact/cors.ts b/src/cors.ts similarity index 100% rename from api/contact/cors.ts rename to src/cors.ts diff --git a/api/contact/email.ts b/src/email.ts similarity index 100% rename from api/contact/email.ts rename to src/email.ts diff --git a/api/contact/types.ts b/src/types.ts similarity index 100% rename from api/contact/types.ts rename to src/types.ts diff --git a/api/contact/validation.ts b/src/validation.ts similarity index 100% rename from api/contact/validation.ts rename to src/validation.ts diff --git a/tests/contact/cors.test.ts b/tests/contact/cors.test.ts index 23aab78..d05285e 100644 --- a/tests/contact/cors.test.ts +++ b/tests/contact/cors.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from "vitest"; -import { setCorsHeaders } from "@/api/contact/cors.js"; +import { setCorsHeaders } from "@/src/cors.js"; import type { VercelRequest, VercelResponse } from "@vercel/node"; const makeReq = (origin?: string, method = "POST") => ({ diff --git a/tests/contact/email.test.ts b/tests/contact/email.test.ts index 05bd725..5fbefac 100644 --- a/tests/contact/email.test.ts +++ b/tests/contact/email.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from "vitest"; import type { Resend } from "resend"; -import { getEmailConfig, sendEmail, type EmailConfig } from "@/api/contact/email.js"; -import type { ContactBody } from "@/api/contact/types.js"; +import { getEmailConfig, sendEmail, type EmailConfig } from "@/src/email.js"; +import type { ContactBody } from "@/src/types.js"; vi.mock("resend"); diff --git a/tests/contact/index.test.ts b/tests/contact/index.test.ts index 355c861..719da37 100644 --- a/tests/contact/index.test.ts +++ b/tests/contact/index.test.ts @@ -2,15 +2,15 @@ import { vi, describe, it, expect, beforeEach } from "vitest"; import type { VercelRequest, VercelResponse } from "@vercel/node"; vi.mock("@vercel/firewall", () => ({ checkRateLimit: vi.fn() })); -vi.mock("@/api/contact/cors.js", () => ({ setCorsHeaders: vi.fn() })); -vi.mock("@/api/contact/validation.js", () => ({ isValidBody: vi.fn() })); -vi.mock("@/api/contact/email.js", () => ({ getEmailConfig: vi.fn(), sendEmail: vi.fn() })); -vi.mock("@/api/contact/config.js", () => ({ config: { allowedOrigins: ["https://example.com"] } })); +vi.mock("@/src/cors.js", () => ({ setCorsHeaders: vi.fn() })); +vi.mock("@/src/validation.js", () => ({ isValidBody: vi.fn() })); +vi.mock("@/src/email.js", () => ({ getEmailConfig: vi.fn(), sendEmail: vi.fn() })); +vi.mock("@/src/config.js", () => ({ config: { allowedOrigins: ["https://example.com"] } })); import { checkRateLimit } from "@vercel/firewall"; -import { setCorsHeaders } from "@/api/contact/cors.js"; -import { isValidBody } from "@/api/contact/validation.js"; -import { getEmailConfig, sendEmail } from "@/api/contact/email.js"; +import { setCorsHeaders } from "@/src/cors.js"; +import { isValidBody } from "@/src/validation.js"; +import { getEmailConfig, sendEmail } from "@/src/email.js"; import handler from "@/api/contact/index.js"; const makeReq = (overrides: Partial = {}): VercelRequest => ({ diff --git a/tests/contact/validation.test.ts b/tests/contact/validation.test.ts index 9175c19..79828ce 100644 --- a/tests/contact/validation.test.ts +++ b/tests/contact/validation.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from "vitest"; -import { EMAIL_REGEX, isValidBody } from "@/api/contact/validation.js"; +import { EMAIL_REGEX, isValidBody } from "@/src/validation.js"; describe("EMAIL_REGEX", () => { const validate = (email: string) => EMAIL_REGEX.test(email); diff --git a/tsconfig.json b/tsconfig.json index 19cf6b6..5ab8662 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -49,7 +49,8 @@ } }, "include": [ - "./api/**/*.ts" + "./api/**/*.ts", + "./src/**/*.ts" ], "exclude": [ "dist/",