UNPKG

typedoc

Version:

Create api documentation for TypeScript projects.

60 lines (59 loc) 2.14 kB
/* eslint-disable no-console */ import { join } from "node:path"; import { Reflection, ReflectionKind, } from "../models/index.js"; const serializer = { priority: 0, supports(x) { return x instanceof Reflection; }, toObject(item, obj) { obj.url = item.url; obj.hasOwnDocument = item.hasOwnDocument; // obj.anchor = item.anchor; delete obj.sources; delete obj.groups; delete obj.categories; delete obj.readme; delete obj.content; obj.kind = ReflectionKind[obj.kind]; delete obj.flags; delete obj.defaultValue; delete obj.symbolIdMap; delete obj.files; delete obj.packageName; delete obj.variant; delete obj.extendedTypes; delete obj.inheritedFrom; if (!["reflection", "reference"].includes(obj.type?.type)) { delete obj.type; } if (obj.comment) { obj.comment.summary = obj.comment.summary.filter((part) => part.kind === "inline-tag"); obj.comment.blockTags = obj.comment.blockTags?.filter((tag) => { tag.content = tag.content.filter((part) => part.kind === "inline-tag"); return tag.content.length; }); if (!obj.comment.summary.length && !obj.comment.blockTags?.length && !obj.comment.modifierTags) { delete obj.comment; } } return obj; }, }; export function debugRendererUrls(app, { json = false, logs = false } = { logs: true }) { app.renderer.postRenderAsyncJobs.push(async (evt) => { if (json) { app.serializer.addSerializer(serializer); await app.generateJson(evt.project, join(evt.outputDirectory, "url_debug.json")); app.serializer.removeSerializer(serializer); } if (logs) { for (const id in evt.project.reflections) { const refl = evt.project.reflections[id]; console.log(refl.id, refl.getFullName(), refl.url, refl.hasOwnDocument); } } }); }