fixing lint config

This commit is contained in:
2025-07-23 09:29:19 -06:00
parent c95c40f9e7
commit d5a40e52d9
19 changed files with 32 additions and 48 deletions

View File

@@ -10,13 +10,11 @@ const compat = new FlatCompat({
}); });
const eslintConfig = [ const eslintConfig = [
{
ignores: ["**/node_modules/**", "**/.next/**", "storage/**"],
},
...compat.config({ ...compat.config({
extends: ["next/core-web-vitals", "next/typescript", "prettier"], extends: ["next/core-web-vitals", "next/typescript", "prettier"],
ignores: [
"**/node_modules/**",
"**/.next/**",
"storage/**"
],
rules: { rules: {
"react-refresh/only-export-components": "off", // Disabled the rule "react-refresh/only-export-components": "off", // Disabled the rule
"@typescript-eslint/no-unused-vars": [ "@typescript-eslint/no-unused-vars": [

View File

@@ -8,18 +8,10 @@ import { Spinner } from "@/components/Spinner";
import { SuspenseAndErrorHandling } from "@/components/SuspenseAndErrorHandling"; import { SuspenseAndErrorHandling } from "@/components/SuspenseAndErrorHandling";
import { useCourseListInTermQuery } from "@/hooks/canvas/canvasCourseHooks"; import { useCourseListInTermQuery } from "@/hooks/canvas/canvasCourseHooks";
import { useCanvasTermsQuery } from "@/hooks/canvas/canvasHooks"; import { useCanvasTermsQuery } from "@/hooks/canvas/canvasHooks";
import {
useGlobalSettingsQuery,
useUpdateGlobalSettingsMutation,
} from "@/hooks/localCourse/globalSettingsHooks";
import { import {
useCreateLocalCourseMutation, useCreateLocalCourseMutation,
useLocalCoursesSettingsQuery, useLocalCoursesSettingsQuery,
} from "@/hooks/localCourse/localCoursesHooks"; } from "@/hooks/localCourse/localCoursesHooks";
import {
useDirectoryIsCourseQuery,
useEmptyDirectoriesQuery,
} from "@/hooks/localCourse/storageDirectoryHooks";
import { CanvasCourseModel } from "@/models/canvas/courses/canvasCourseModel"; import { CanvasCourseModel } from "@/models/canvas/courses/canvasCourseModel";
import { CanvasEnrollmentTermModel } from "@/models/canvas/enrollmentTerms/canvasEnrollmentTermModel"; import { CanvasEnrollmentTermModel } from "@/models/canvas/enrollmentTerms/canvasEnrollmentTermModel";
import { AssignmentSubmissionType } from "@/features/local/assignments/models/assignmentSubmissionType"; import { AssignmentSubmissionType } from "@/features/local/assignments/models/assignmentSubmissionType";
@@ -165,7 +157,7 @@ function OtherSettings({
selectedTerm, selectedTerm,
selectedCanvasCourse, selectedCanvasCourse,
setSelectedCanvasCourse, setSelectedCanvasCourse,
selectedDirectory, selectedDirectory: _,
setSelectedDirectory, setSelectedDirectory,
selectedDaysOfWeek, selectedDaysOfWeek,
setSelectedDaysOfWeek, setSelectedDaysOfWeek,

View File

@@ -31,7 +31,7 @@ export const AddExistingCourseToGlobalSettings = () => {
); );
}; };
const ExistingCourseForm: FC<{}> = () => { const ExistingCourseForm: FC<object> = () => {
const [path, setPath] = useState("./"); const [path, setPath] = useState("./");
const [name, setName] = useState(""); const [name, setName] = useState("");
const nameInputRef = useRef<HTMLInputElement>(null); const nameInputRef = useRef<HTMLInputElement>(null);

View File

@@ -1,7 +1,6 @@
import { assignmentMarkdownSerializer } from "@/features/local/assignments/models/utils/assignmentMarkdownSerializer"; import { assignmentMarkdownSerializer } from "@/features/local/assignments/models/utils/assignmentMarkdownSerializer";
import { groupByStartDate } from "@/models/local/utils/timeUtils"; import { groupByStartDate } from "@/models/local/utils/timeUtils";
import { fileStorageService } from "@/services/fileStorage/fileStorageService"; import { fileStorageService } from "@/services/fileStorage/fileStorageService";
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { createMcpHandler } from "mcp-handler"; import { createMcpHandler } from "mcp-handler";
import { z } from "zod"; import { z } from "zod";
import { githubClassroomUrlPrompt } from "./github-classroom-prompt"; import { githubClassroomUrlPrompt } from "./github-classroom-prompt";

View File

@@ -6,7 +6,6 @@ import {
useMutation, useMutation,
useQueryClient, useQueryClient,
} from "@tanstack/react-query"; } from "@tanstack/react-query";
import { useGlobalSettingsQuery } from "./globalSettingsHooks";
export const useLocalCoursesSettingsQuery = () => { export const useLocalCoursesSettingsQuery = () => {
const trpc = useTRPC(); const trpc = useTRPC();

View File

@@ -1,5 +1,5 @@
import { LocalCoursePage, localPageMarkdownUtils } from "@/features/local/pages/localCoursePageModels";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { LocalCoursePage, localPageMarkdownUtils } from "../page/localCoursePage";
describe("PageMarkdownTests", () => { describe("PageMarkdownTests", () => {
it("can parse page", () => { it("can parse page", () => {

View File

@@ -1,5 +1,5 @@
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { quizMarkdownUtils } from "@/models/local/models/utils/quizMarkdownUtils";
describe("Matching Answer Error Messages", () => { describe("Matching Answer Error Messages", () => {
it("can parse matching question", () => { it("can parse matching question", () => {

View File

@@ -1,7 +1,7 @@
import { QuestionType } from "@/features/local/quizzes/models/localQuizQuestion";
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/features/local/quizzes/models/utils/quizQuestionMarkdownUtils";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { QuestionType } from "../../models/localQuizQuestion";
import { quizMarkdownUtils } from "@/models/local/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/models/local/models/utils/quizQuestionMarkdownUtils";
describe("MatchingTests", () => { describe("MatchingTests", () => {
it("can parse matching question", () => { it("can parse matching question", () => {

View File

@@ -1,8 +1,8 @@
import { LocalQuiz } from "@/features/local/quizzes/models/localQuiz";
import { QuestionType } from "@/features/local/quizzes/models/localQuizQuestion";
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/features/local/quizzes/models/utils/quizQuestionMarkdownUtils";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { LocalQuiz } from "../../models/localQuiz";
import { QuestionType } from "../../models/localQuizQuestion";
import { quizMarkdownUtils } from "@/models/local/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/models/local/models/utils/quizQuestionMarkdownUtils";
describe("MultipleAnswersTests", () => { describe("MultipleAnswersTests", () => {
it("quiz markdown includes multiple answer question", () => { it("quiz markdown includes multiple answer question", () => {

View File

@@ -1,8 +1,8 @@
import { LocalQuiz } from "@/features/local/quizzes/models/localQuiz";
import { QuestionType } from "@/features/local/quizzes/models/localQuizQuestion";
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/features/local/quizzes/models/utils/quizQuestionMarkdownUtils";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { LocalQuiz } from "../../models/localQuiz";
import { QuestionType } from "../../models/localQuizQuestion";
import { quizMarkdownUtils } from "@/models/local/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/models/local/models/utils/quizQuestionMarkdownUtils";
describe("MultipleChoiceTests", () => { describe("MultipleChoiceTests", () => {
it("quiz markdown includes multiple choice question", () => { it("quiz markdown includes multiple choice question", () => {

View File

@@ -1,7 +1,7 @@
import { LocalQuiz } from "@/features/local/quizzes/models/localQuiz";
import { QuestionType } from "@/features/local/quizzes/models/localQuizQuestion";
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { LocalQuiz } from "../../models/localQuiz";
import { quizMarkdownUtils } from "../../models/utils/quizMarkdownUtils";
import { QuestionType } from "@/models/local/models/localQuizQuestion";
// Test suite for deterministic checks on LocalQuiz // Test suite for deterministic checks on LocalQuiz
describe("QuizDeterministicChecks", () => { describe("QuizDeterministicChecks", () => {

View File

@@ -1,9 +1,9 @@
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
import { LocalQuiz } from "../../models/localQuiz";
import { quizMarkdownUtils } from "../../models/utils/quizMarkdownUtils";
import { QuestionType } from "@/models/local/models/localQuizQuestion";
import { quizQuestionMarkdownUtils } from "@/models/local/models/utils/quizQuestionMarkdownUtils";
import { markdownToHtmlNoImages } from "@/services/htmlMarkdownUtils"; import { markdownToHtmlNoImages } from "@/services/htmlMarkdownUtils";
import { LocalQuiz } from "@/features/local/quizzes/models/localQuiz";
import { QuestionType } from "@/features/local/quizzes/models/localQuizQuestion";
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/features/local/quizzes/models/utils/quizQuestionMarkdownUtils";
// Test suite for QuizMarkdown // Test suite for QuizMarkdown
describe("QuizMarkdownTests", () => { describe("QuizMarkdownTests", () => {

View File

@@ -1,10 +1,10 @@
import { QuestionType, zodQuestionType } from "@/features/local/quizzes/models/localQuizQuestion";
import { quizMarkdownUtils } from "@/features/local/quizzes/models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "@/features/local/quizzes/models/utils/quizQuestionMarkdownUtils";
import { import {
getAnswers, getAnswers,
getQuestionType, getQuestionType,
} from "@/services/canvas/canvasQuizService"; } from "@/services/canvas/canvasQuizService";
import { QuestionType, zodQuestionType } from "../../models/localQuizQuestion";
import { quizMarkdownUtils } from "../../models/utils/quizMarkdownUtils";
import { quizQuestionMarkdownUtils } from "../../models/utils/quizQuestionMarkdownUtils";
import { describe, it, expect } from "vitest"; import { describe, it, expect } from "vitest";
describe("TextAnswerTests", () => { describe("TextAnswerTests", () => {

View File

@@ -6,9 +6,9 @@ import {
prepPageForNewSemester, prepPageForNewSemester,
prepQuizForNewSemester, prepQuizForNewSemester,
} from "../utils/semesterTransferUtils"; } from "../utils/semesterTransferUtils";
import { LocalQuiz } from "../models/localQuiz";
import { LocalCoursePage } from "../page/localCoursePage";
import { Lecture } from "../lecture"; import { Lecture } from "../lecture";
import { LocalCoursePage } from "@/features/local/pages/localCoursePageModels";
import { LocalQuiz } from "@/features/local/quizzes/models/localQuiz";
describe("can take an assignment and template it for a new semester", () => { describe("can take an assignment and template it for a new semester", () => {
it("can sanitize assignment github classroom repo url", () => { it("can sanitize assignment github classroom repo url", () => {

View File

@@ -17,6 +17,7 @@ export const getGlobalSettings = async (): Promise<GlobalSettings> => {
try { try {
await fs.access(SETTINGS_FILE_PATH); await fs.access(SETTINGS_FILE_PATH);
} catch (err) { } catch (err) {
console.log(err);
throw new Error( throw new Error(
`Global Settings file does not exist at path: ${SETTINGS_FILE_PATH}` `Global Settings file does not exist at path: ${SETTINGS_FILE_PATH}`
); );

View File

@@ -1,5 +1,4 @@
import { promises as fs } from "fs"; import { promises as fs } from "fs";
import path from "path";
import { lectureFolderName } from "./utils/lectureUtils"; import { lectureFolderName } from "./utils/lectureUtils";
import { getCoursePathByName } from "./globalSettingsFileStorageService"; import { getCoursePathByName } from "./globalSettingsFileStorageService";

View File

@@ -1,5 +1,4 @@
import { promises as fs } from "fs"; import { promises as fs } from "fs";
import path from "path";
import { getGlobalSettings } from "../globalSettingsFileStorageService"; import { getGlobalSettings } from "../globalSettingsFileStorageService";
export const directoryOrFileExists = async ( export const directoryOrFileExists = async (

View File

@@ -1,5 +1,5 @@
"use client"; "use client";
import { marked, MarkedExtension } from "marked"; import { marked } from "marked";
import DOMPurify from "isomorphic-dompurify"; import DOMPurify from "isomorphic-dompurify";
import { LocalCourseSettings } from "@/models/local/localCourseSettings"; import { LocalCourseSettings } from "@/models/local/localCourseSettings";
import markedKatex from "marked-katex-extension"; import markedKatex from "marked-katex-extension";

View File

@@ -17,9 +17,6 @@ import {
getGlobalSettings, getGlobalSettings,
updateGlobalSettings, updateGlobalSettings,
} from "@/services/fileStorage/globalSettingsFileStorageService"; } from "@/services/fileStorage/globalSettingsFileStorageService";
import { promises as fs } from "fs";
import { basePath } from "@/services/fileStorage/utils/fileSystemUtils";
import path from "path";
export const settingsRouter = router({ export const settingsRouter = router({
allCoursesSettings: publicProcedure.query(async () => { allCoursesSettings: publicProcedure.query(async () => {