refactor(lib): organize modules by feature
This commit is contained in:
@@ -4,8 +4,8 @@ import DiscordProvider from "next-auth/providers/discord";
|
||||
import { DrizzleAdapter } from "@auth/drizzle-adapter";
|
||||
import { db } from "@/db";
|
||||
import { accounts, sessions, users, verificationTokens } from "@/db/schema";
|
||||
import type { SessionWithDiscord } from "@/lib/auth";
|
||||
import { addDiscordGuildMember } from "@/lib/discord";
|
||||
import type { SessionWithDiscord } from "@/lib/auth/auth";
|
||||
import { addDiscordGuildMember } from "@/lib/discord/discord";
|
||||
|
||||
const discordIdCache = new Map<string, string>();
|
||||
|
||||
@@ -2,8 +2,8 @@ import "server-only";
|
||||
import { getServerSession } from "next-auth";
|
||||
import type { Session } from "next-auth";
|
||||
import { db } from "@/db";
|
||||
import { authOptions } from "@/lib/auth-options";
|
||||
import { getGuildMemberRoles } from "@/lib/discord";
|
||||
import { authOptions } from "@/lib/auth/auth-options";
|
||||
import { getGuildMemberRoles } from "@/lib/discord/discord";
|
||||
|
||||
export type SessionWithDiscord = Session & {
|
||||
user?: Session["user"] & {
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { isFormAcceptingSubmissions } from "@/lib/form-availability";
|
||||
import { isFormAcceptingSubmissions } from "@/lib/form/form-availability";
|
||||
|
||||
const now = new Date("2026-07-30T12:00:00.000Z");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { z } from "zod";
|
||||
import type { FormAnswerValue } from "@/lib/form-answer-values";
|
||||
import { decodeCheckboxAnswer } from "@/lib/form-answer-values";
|
||||
import type { FormAnswerValue } from "@/lib/form/form-answer-values";
|
||||
import { decodeCheckboxAnswer } from "@/lib/form/form-answer-values";
|
||||
|
||||
export type Question = {
|
||||
id: string;
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
getQuestionResponseSettings,
|
||||
getQuestionResponseType,
|
||||
isImageOnlyResponse,
|
||||
} from "@/lib/question-response-type";
|
||||
} from "@/lib/form/question-response-type";
|
||||
|
||||
describe("question response types", () => {
|
||||
test("maps stored question settings to the four editor choices", () => {
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { normalizeSubmissionAnswers } from "@/lib/submission-intake";
|
||||
import { normalizeSubmissionAnswers } from "@/lib/form/submission-intake";
|
||||
|
||||
const question = {
|
||||
id: "question-1",
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
encodeAnswerValue,
|
||||
formatStoredAnswer,
|
||||
type FormAnswerValue,
|
||||
} from "@/lib/form-answer-values";
|
||||
} from "@/lib/form/form-answer-values";
|
||||
import { stripHtml } from "@/lib/utils";
|
||||
|
||||
export type SubmissionQuestion = {
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
type NormalizedSubmissionAnswer,
|
||||
type OldAnswersByQuestionId,
|
||||
type SubmissionQuestion,
|
||||
} from "@/lib/submission-intake";
|
||||
} from "@/lib/form/submission-intake";
|
||||
|
||||
const NEW_SUBMISSION_TEMPLATE = "New submission from {username} ({id}).";
|
||||
const UPDATED_SUBMISSION_TEMPLATE = "Submission updated by {username} ({id}).\n{update}";
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { isSseTopic, sse } from "@/lib/sse";
|
||||
import { isSseTopic, sse } from "@/lib/realtime/sse";
|
||||
|
||||
describe("leaderboard SSE contract", () => {
|
||||
test("registers the public leaderboards topic", () => {
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
validateThumbnailFile,
|
||||
validateVideoFile,
|
||||
publishVideoJob,
|
||||
} from "@/lib/video-platforms";
|
||||
} from "@/lib/video/video-platforms";
|
||||
import { eq } from "drizzle-orm";
|
||||
|
||||
const VIDEO_DIR = process.env.VIDEO_UPLOAD_DIR || "/nfs/erika";
|
||||
Reference in New Issue
Block a user