diff --git a/src/lib/converter/comments/index.ts b/src/lib/converter/comments/index.ts index 07264e892..a3da3d75c 100644 --- a/src/lib/converter/comments/index.ts +++ b/src/lib/converter/comments/index.ts @@ -15,7 +15,7 @@ import { } from "./discovery"; import { lexLineComments } from "./lineLexer"; import { parseComment } from "./parser"; -import { MediaRegistry } from "../../models/MediaRegistry"; +import type { MediaRegistry } from "../../models/MediaRegistry"; export interface CommentParserConfig { blockTags: Set; diff --git a/src/lib/converter/comments/textParser.ts b/src/lib/converter/comments/textParser.ts index 6ed1fed06..5da54f798 100644 --- a/src/lib/converter/comments/textParser.ts +++ b/src/lib/converter/comments/textParser.ts @@ -5,10 +5,13 @@ * them into references. * @module */ -import { TranslationProxy, TranslatedString } from "../../internationalization"; +import type { + TranslationProxy, + TranslatedString, +} from "../../internationalization"; import type { CommentDisplayPart } from "../../models"; -import { MediaRegistry } from "../../models/MediaRegistry"; -import { Token, TokenSyntaxKind } from "./lexer"; +import type { MediaRegistry } from "../../models/MediaRegistry"; +import { type Token, TokenSyntaxKind } from "./lexer"; import MarkdownIt from "markdown-it"; const MdHelpers = new MarkdownIt().helpers; diff --git a/src/lib/converter/converter.ts b/src/lib/converter/converter.ts index 91d4ff6f6..c4c3497c8 100644 --- a/src/lib/converter/converter.ts +++ b/src/lib/converter/converter.ts @@ -47,7 +47,7 @@ import { type DeclarationReference, } from "./comments/declarationReference"; import { basename, dirname, resolve } from "path"; -import { MediaRegistry } from "../models/MediaRegistry"; +import type { MediaRegistry } from "../models/MediaRegistry"; /** * Compiles source files using TypeScript and converts compiler symbols to reflections. diff --git a/src/lib/models/MediaRegistry.ts b/src/lib/models/MediaRegistry.ts index c24d15234..dae4051e3 100644 --- a/src/lib/models/MediaRegistry.ts +++ b/src/lib/models/MediaRegistry.ts @@ -1,9 +1,9 @@ import { basename, dirname, parse, relative, resolve } from "path"; -import { Deserializer, Serializer } from "../serialization"; -import { MediaRegistry as JSONMediaRegistry } from "../serialization/schema"; +import type { Deserializer, Serializer } from "../serialization"; +import type { MediaRegistry as JSONMediaRegistry } from "../serialization/schema"; import { normalizePath } from "../utils"; import { existsSync } from "fs"; -import { Reflection } from "./reflections"; +import type { Reflection } from "./reflections"; export class MediaRegistry { protected nextId = 1; diff --git a/src/lib/models/comments/comment.ts b/src/lib/models/comments/comment.ts index f72e3e143..b4e828083 100644 --- a/src/lib/models/comments/comment.ts +++ b/src/lib/models/comments/comment.ts @@ -245,6 +245,7 @@ export class Comment { } else { assertNever(part.target); } + break; } case "relative-link": { if (part.target) { @@ -274,7 +275,7 @@ export class Comment { if (links.length || media.length) { de.defer((project) => { for (const [oldMedia, part] of media) { - part.target = de.oldMediaToNewMedia[oldMedia]!; // GERRIT: Need to get rid of this assert, figure out how to handle null media + part.target = de.oldMediaToNewMedia[oldMedia]; } for (const [oldId, part] of links) { part.target = project.getReflectionById( diff --git a/src/lib/models/reflections/project.ts b/src/lib/models/reflections/project.ts index 271f1a4b9..d46a95197 100644 --- a/src/lib/models/reflections/project.ts +++ b/src/lib/models/reflections/project.ts @@ -15,7 +15,7 @@ import type { Serializer } from "../../serialization/serializer"; import type { Deserializer, JSONOutput } from "../../serialization/index"; import { DefaultMap, StableKeyMap } from "../../utils/map"; import type { DocumentReflection } from "./document"; -import { MediaRegistry } from "../MediaRegistry"; +import type { MediaRegistry } from "../MediaRegistry"; /** * A reflection that represents the root of the project. diff --git a/src/lib/output/plugins/AssetsPlugin.ts b/src/lib/output/plugins/AssetsPlugin.ts index c4aa0346c..8a09525cc 100644 --- a/src/lib/output/plugins/AssetsPlugin.ts +++ b/src/lib/output/plugins/AssetsPlugin.ts @@ -58,7 +58,7 @@ export class AssetsPlugin extends RendererComponent { const media = join(event.outputDirectory, "media"); const toCopy = event.project.media.getNameToAbsoluteMap(); for (const [mediaName, absolute] of toCopy.entries()) { - copySync(absolute, join(media, mediaName!)); + copySync(absolute, join(media, mediaName)); } } } diff --git a/src/lib/output/themes/MarkedPlugin.tsx b/src/lib/output/themes/MarkedPlugin.tsx index f932e65f4..e87c05f4c 100644 --- a/src/lib/output/themes/MarkedPlugin.tsx +++ b/src/lib/output/themes/MarkedPlugin.tsx @@ -168,7 +168,7 @@ export class MarkedPlugin extends ContextAwareRendererComponent { break; case "relative-link": switch (typeof part.target) { - case "number": + case "number": { const refl = page.project.media.resolve(part.target); if (typeof refl === "object") { result.push(context.urlTo(refl)); @@ -180,6 +180,7 @@ export class MarkedPlugin extends ContextAwareRendererComponent { result.push(context.relativeURL(`media/${mediaName}`)); break; } + } // fall through case "undefined": result.push(part.text); diff --git a/src/lib/serialization/deserializer.ts b/src/lib/serialization/deserializer.ts index d31967691..bd458ed35 100644 --- a/src/lib/serialization/deserializer.ts +++ b/src/lib/serialization/deserializer.ts @@ -37,7 +37,7 @@ import { import { insertPrioritySorted } from "../utils/array"; import type { Logger } from "../utils/loggers"; import type { JSONOutput } from "./index"; -import { MediaRegistry } from "../models/MediaRegistry"; +import type { MediaRegistry } from "../models/MediaRegistry"; export interface DeserializerComponent { priority: number; diff --git a/src/test/comments.test.ts b/src/test/comments.test.ts index 38b4edaaf..9c8b21d40 100644 --- a/src/test/comments.test.ts +++ b/src/test/comments.test.ts @@ -7,7 +7,7 @@ import { lexLineComments } from "../lib/converter/comments/lineLexer"; import { type Token, TokenSyntaxKind } from "../lib/converter/comments/lexer"; import { parseComment } from "../lib/converter/comments/parser"; import { lexCommentString } from "../lib/converter/comments/rawLexer"; -import { Comment, CommentDisplayPart, CommentTag } from "../lib/models"; +import { Comment, type CommentDisplayPart, CommentTag } from "../lib/models"; import { MinimalSourceFile } from "../lib/utils/minimalSourceFile"; import { TestLogger } from "./TestLogger"; import { extractTagName } from "../lib/converter/comments/tagName";