mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-20 22:22:57 +03:00
The guard shipped with #10695 watched two hand-picked modules. It now walks the static import graph from all 753 "use client" files in src/ (plus the two originally pinned entries), so the invariant is verified across the repo instead of where someone remembered to look. Full sweep runs in ~750ms. Two exclusions make that practical: - `import type` is not an edge — TypeScript erases it before the bundler sees it. Counting type imports turns 3 real findings into 29; a guard that cries wolf gets switched off. - Dynamic `import()` is still not followed. It does not break a bundle edge (that was tried for #10692 and failed) but it does move the module into a chunk the browser fetches on demand, which is a legitimate boundary. The widened sweep immediately found what the narrow one could not: five value-form imports of `db/batches` / `db/files` across three files under dashboard/batch, each reaching db/core → the SQLite driver. All five bind only interfaces (BatchRecord, FileRecord) used in type position, so the compiler was eliding them and the build stayed green — the same latent shape as #10692 before #10647 removed the toolchain's tolerance. Marking them `import type` makes the elision explicit instead of incidental. Refs #10692 Co-authored-by: Xiangzhe <bakryun0718@proton.me>
This commit is contained in:
committed by
GitHub
parent
86fc1aade2
commit
b754e44e26
@@ -1,5 +1,5 @@
|
||||
import { BatchRecord } from "@/lib/db/batches";
|
||||
import { FileRecord } from "@/lib/db/files";
|
||||
import type { BatchRecord } from "@/lib/db/batches";
|
||||
import type { FileRecord } from "@/lib/db/files";
|
||||
|
||||
export function mapBatchApiToRecord(b: any): BatchRecord {
|
||||
return {
|
||||
|
||||
@@ -6,8 +6,8 @@ import FilesListTab from "../FilesListTab";
|
||||
import FilesConceptCard from "../components/FilesConceptCard";
|
||||
import UploadFileModal from "../components/UploadFileModal";
|
||||
import { mapFileApiToRecord, mapBatchApiToRecord } from "../batch-utils";
|
||||
import { FileRecord } from "@/lib/db/files";
|
||||
import { BatchRecord } from "@/lib/db/batches";
|
||||
import type { FileRecord } from "@/lib/db/files";
|
||||
import type { BatchRecord } from "@/lib/db/batches";
|
||||
|
||||
export default function BatchFilesPage() {
|
||||
const t = useTranslations("common");
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
import { useState, useEffect, useCallback, useRef } from "react";
|
||||
import { useTranslations } from "next-intl";
|
||||
import BatchListTab from "./BatchListTab";
|
||||
import { FileRecord } from "@/lib/db/files";
|
||||
import { BatchRecord } from "@/lib/db/batches";
|
||||
import type { FileRecord } from "@/lib/db/files";
|
||||
import type { BatchRecord } from "@/lib/db/batches";
|
||||
import { mapBatchApiToRecord, mapFileApiToRecord } from "./batch-utils";
|
||||
import BatchConceptCard from "./components/BatchConceptCard";
|
||||
import NewBatchWizard from "./components/NewBatchWizard";
|
||||
|
||||
Reference in New Issue
Block a user